note 63775 added to function.array-keys
| From: | vorozhko at gmail dot com | Date: | Thu, 30 Mar 2006 12:51:02 +0000 |
| Subject: | note 63775 added to function.array-keys | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-107025@lists.php.net to get a copy of this message | ||
Function search key path in multiarray
[php]
//ÐоиÑк клÑÑа в многомеÑном
маÑÑиве:
<?php $arvore = array();
$arvore['1'] = array();
$arvore['1']['1.1'] = array('1.1.1', '1.1.2',
'1.1.3');
$arvore['1']['1.2'] = array('1.2.1', '1.2.2',
'1.2.3');
$arvore['1']['1.3'] = array('1.3.1', '1.3.2',
'1.3.3');
$arvore['2'] = array();
$arvore['2']['2.1'] = array('2.1.1', '2.1.2',
'2.1.3');
$arvore['2']['2.2'] = array('2.2.1', '2.2.2',
'2.2.3');
$arvore['2']['2.3'] = array('2.3.1', '2.3.2',
'2.3.3');
$arvore['3'] = array();
$arvore['3']['3.1'] = array('3.1.1', '3.1.2',
'3.1.3');
$arvore['3']['3.2'] = array('3.2.1', '3.2.2',
'3.2.3');
$arvore['3']['3.3'] = array('3.3.1',
'3.3.2'=>array('3.3.2.1', '3.3.2.2'), '3.3.3');
var_dump($arvore);
$key = array();
$key = multi_search_key("3.3.2.2", $arvore);
print_r($key);
function multi_search_key($needle, $haystack, $strict=false) {
$key = array();
if(!is_array($haystack)) return NULL;
foreach($haystack as $k => $v) {
if (is_array($v))
{
$ret = multi_search_key($needle, $v, $strict);
if ($ret !== false)
{
$key[$k] = $ret;
return $key;
}
}
if (!is_array($v))
{
if ($v == $needle)
{
return $k;
}
}
}
return false;
}
[/php]
----
Server IP: 195.248.191.91
Probable Submitter: 212.109.32.7 (proxied: 85.202.234.91, 212.109.44.30)
----
X-Spam-Status: No, hits=3.1 required=5.0 tests=DATE_MISSING,FROM_NO_LOWER
autolearn=no version=2.64
----
Manual Page -- http://www.php.net/manual/en/function.array-keys.php
Edit -- http://master.php.net/note/edit/63775
Del: integrated -- http://master.php.net/note/delete/63775/integrated
Del: useless -- http://master.php.net/note/delete/63775/useless
Del: bad code -- http://master.php.net/note/delete/63775/bad+code
Del: spam -- http://master.php.net/note/delete/63775/spam
Del: non-english -- http://master.php.net/note/delete/63775/non-english
Del: in docs -- http://master.php.net/note/delete/63775/in+docs
Del: other reasons-- http://master.php.net/note/delete/63775
Reject -- http://master.php.net/note/reject/63775
Search -- http://master.php.net/manage/user-notes.php