这是我的数组的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的对象索引,以便从数组中删除它?
$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到我们找到我们想要删除的对象.
注意:迭代时不应删除数组元素,因此我们在此后执行此操作.
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我们所处的是您正在寻找的索引.