我使用下面的代码在父数组中找到一个数组,但是即使指定的键在父数组中退出,它也无法重新调整为空
$cards_parent = $feedData['BetradarLivescoreData']['Sport']['Category']['Tournament']['Match'];
$cards = array();
foreach($cards_parent as $key => $card)
{
if ($key === 'Cards')
{
$cards[] = $cards_parent[$key];
break;
}
}
你知道任何数组函数会搜索父数组中的指定键吗?如果发现它会从该键开始创建一个数组?
答案 0 :(得分:1)
接受一个针(字符串),然后是haystack(数组)并返回true或false。
在其中一条评论中,有一个递归解决方案看起来可能更像你想要的。 http://us2.php.net/manual/en/function.array-key-exists.php#94601
答案 1 :(得分:1)
这里你可以使用递归:
function Recursor($arr)
{
if(is_array($arr))
{
foreach($arr as $k=>$v)
{
if($k == 'Cards')
{
$_GLOBAL['cards'][] = $card;
} else {
Recursor($arr[$k]);
}
}
}
}
$cards_parent = $feedData['BetradarLivescoreData']['Sport']['Category']['Tournament']['Match'];
$_GLOBAL['cards'] = array();
Recursor($cards_parent);
答案 2 :(得分:0)
你能把print_r($feedData)
放好吗?我运行了下面的代码
<?php
$feedData = array('BetradarLivescoreData' => array('Sport' => array('Category' => array('Tournament' => array('Match' => array('Cards' => array('hellow','jwalk')))))));
$cards_parent = $feedData['BetradarLivescoreData']['Sport']['Category']['Tournament']['Match'];
$cards = array();
foreach($cards_parent as $key => $card)
{
if ($key === 'Cards')
{
$cards[] = $card;
break;
}
}
print_r($cards);
它返回了一个填充的数组:
数组([0] =&gt;数组([0] =&gt; hellow [1] =&gt; jwalk))
所以你的代码是正确的,可能是你的数组$ feedData不是。