如何从父数组中查找数组?

时间:2010-06-04 06:38:27

标签: php arrays

我使用下面的代码在父数组中找到一个数组,但是即使指定的键在父数组中退出,它也无法重新调整为空

$cards_parent = $feedData['BetradarLivescoreData']['Sport']['Category']['Tournament']['Match'];
$cards = array();

foreach($cards_parent as $key => $card)
{
    if ($key === 'Cards')
    {
        $cards[] = $cards_parent[$key];
        break;
    }
}

你知道任何数组函数会搜索父数组中的指定键吗?如果发现它会从该键开始创建一个数组?

3 个答案:

答案 0 :(得分:1)

你想要array_key_exists()

接受一个针(字符串),然后是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不是。