-1

数组看起来像这样:

$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那么我会从 ID12一个简单的数组中得到结果。

我确信这应该如此简单,但我似乎已经完全陷入了精神障碍,所以任何帮助将不胜感激。

4

3 回答 3

0

尝试:

$ids = array();
foreach($yourArray as $v)
    if(in_array(46, $v["Item"]))
        $ids[] = $v["ID"];
于 2012-10-23T13:09:08.033 回答
0

试试这个,

foreach($array as $v) {
if(in_array(46, $v['Item'])
    $ids[] = $v['ID']; //array $ids will contain 1, 2..and so on.
}
于 2012-10-23T13:11:20.683 回答
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;
}
于 2012-10-23T13:13:51.600 回答