如何在php数组中找到对象的索引?

Mil*_*lan 10 php arrays

这是我的数组的print_r输出:

Array
(
[0] => stdClass Object
    (
        [itemId] => 560639000019
        [name] => Item no1
        [code] => 00001
        [qty] => 5
        [id] => 2
    )

[1] => stdClass Object
    (
        [itemId] => 470639763471
        [name] => Second item
        [code] => 76347
        [qty] => 9
        [id] => 4
    )

[2] => stdClass Object
    (
        [itemId] => 56939399632
        [name] => Item no 3
        [code] => 39963
        [qty] => 6
        [id] => 7
    )

)
Run Code Online (Sandbox Code Playgroud)

如何找到[id] => 4的对象索引,以便从数组中删除它?

fdo*_*mig 9

$found = false;  
foreach($values as $key => $value) {
    if ($value->id == 4) {
        $found = true;
        break;
    }
}

if ($found) unset($values[$key]);
Run Code Online (Sandbox Code Playgroud)

这被认为比任何其他解决方案更快,因为我们只迭代array到我们找到我们想要删除的对象.

注意:迭代时不应删除数组元素,因此我们在此后执行此操作.


Lix*_*Lix 6

foreach($parentObj AS $key=>$element){
  if ($element->id == THE_ID_YOU_ARE_LOOKING_FOR){
    echo "Gottcha! The index is - ". $key;
  }
}
Run Code Online (Sandbox Code Playgroud)

$parentObj 显然是你的根数组 - 包含所有其他数组的根数组.

我们使用foreach循环迭代每个项目,然后id根据您想要的值来测试它的属性.一旦我们拥有了 - $key我们所处的是您正在寻找的索引.