Php 在多嵌套数组中的相同键之间查找匹配项?
接下来,我还有一个问题-我有两个相同的子键,但它们的Php 在多嵌套数组中的相同键之间查找匹配项?,php,php-5.3,array-difference,array-key-exists,Php,Php 5.3,Array Difference,Array Key Exists,接下来,我还有一个问题-我有两个相同的子键,但它们的变量键中的数组组合不同 Array ( [1] => Array ( [b] => Array ( [quantity_request] => 1 [time_created] => 1339688613 [variant]
变量
键中的数组组合不同
Array
(
[1] => Array
(
[b] => Array
(
[quantity_request] => 1
[time_created] => 1339688613
[variant] => Array
(
[0] => x
[1] => y
)
)
)
[2] => Array
(
[b] => Array
(
[quantity_request] => 1
[time_created] => 1339688631
[variant] => Array
(
[0] => x
[1] => z
)
)
)
[3] => Array
(
[c] => Array
(
[quantity_request] => 1
[time_created] => 1339688959
[variant] => Array
(
)
)
)
)
那么,我怎样才能找到这个项目的匹配项
[b] => Array
(
[quantity_request] => 1
[time_created] => 1339688631
[variant] => Array
(
[0] => x
[1] => z
)
)
function get_letter($letter,$array)
{
foreach($this->content as $k => $v)
{
if(array_key_exists($letter, $v))
{
return $k;
}
}
return false;
}
list($key,$different) = get_letter('b',array("x","z")); // return 1
我想要这样的结果如果有匹配的话
2
有什么想法吗?数组是逐值比较的,所以这应该很好
$key = array_search($needle, $haystack);
其中,$needle
是要查找其密钥的数组
您只需添加:
if ($v['variant'] == $array)
在if
语句中,将变量
数组与作为参数传递的数组进行比较
function get_letter($letter, $array)
{
foreach($this->content as $k => $v)
{
if(array_key_exists($letter, $v))
{
if ($v['variant'] == $array)
return $k;
}
}
return false;
}
你能更详细地解释一下你的问题吗?为什么结果应该是
2,0
?我想找到最高级别的键,实际上是2
(我编辑了我的问题)。