搜索多数组并创建包含原始数组元素的新数组

时间:2012-10-23 13:04:18

标签: php arrays multidimensional-array

数组看起来像这样:

$array = array(
  array(
    'Item' => array(47, 48, 46, 42),
    'ID' => 1,
  ),
  array(
    'Item' => array(29, 37, 46, 48),
    'ID' => 2,
  ),
  array(
    'Item' => array(33, 27, 18),
    'ID' => 3,
  ),
);

我要做的是搜索[Item]数组,如果匹配,请将[ID]添加到新数组中。

所以,如果我正在寻找46,那么我会在ID 12的简单数组中得到结果。

我确信这应该是如此简单,但我似乎已经完成了一个完整的心理障碍,所以任何帮助都会非常感激。

3 个答案:

答案 0 :(得分:0)

尝试:

$ids = array();
foreach($yourArray as $v)
    if(in_array(46, $v["Item"]))
        $ids[] = $v["ID"];

答案 1 :(得分:0)

试试这个,

foreach($array as $v) {
if(in_array(46, $v['Item'])
    $ids[] = $v['ID']; //array $ids will contain 1, 2..and so on.
}

答案 2 :(得分:0)

您是否尝试过使用in_array()?

您可以迭代数组并检查您的值是否位于Item数组中。类似的东西:

function getId(array $array, $value) {
    $ids = array();
    foreach ($array as $element) {
       if (in_array($value, $element['Item'])) {
           $ids[] = $element['ID'];
       }
    }
    return $ids;
}