codepad.viper-7.com
Script:
(hide)
Author
unknown
Size:
1140 b
Created:
12/12/2012 9:09am
Version:
2
Hits:
24
Render Time:
0.00 ms
PHP Version
trunk-dev
5.5-dev
5.4.9
5.4-dev
5.3.19
5.3.10
5.3-dev
5.2.17
Output:
HTML
(hide)
Code:
(hide)
<pre><?php
// behaves like array(*, 245, *, 'subfields', *, 'a', *);
// where * is a wildcard for 0 or more keys
$keySequence = array(245, 'subfields', 'a');
$arr = array();
$arr[245]['subfields']['a'] = 'i match';
$arr[245]['subfields'][7]['a'] = 'i match';
$arr[0][0][0][245][0][0]['subfields']['subfields'][0]['a']['a'] = 'i match';
$arr[0][0][0][0][0][0]['subfields']['subfields'][0]['a']['a'] = 'i dont match';
$arr[0][0][0][0][0][0]['subfields']['subfields'][0]['a']['a'] = 'i dont match';
// behaves like array(*, 245, *, 'subfields', *, 'a', *);
// where * is a wildcard for 0 or more keys
$keySequence = array(245, 'subfields', 'a');
$iter = new RecursiveIteratorIterator(new RecursiveArrayIterator($arr));
$filtered = new CallbackFilterIterator($iter, function ($_, $_, $iterator) use ($keySequence) {
$i = 0;
$max = count($keySequence);
foreach (range(0, $iterator->getDepth()) as $depth) {
if ($keySequence[$i] === $iterator->getSubIterator($depth)->key())
$i++;
if ($i === $max)
return true;
}
return $i === $max;
});
foreach ($filtered as $leafVal) {
echo "$leafVal\n";
}
User
Create Account
Log In
Views
Request Headers
Response Headers
Response Body
Opcodes
Profile
Call Graph
Controls
New Paste
Paste History
unknown:
untitled
unknown:
untitled
unknown:
untitled