删除一个项目从数组另一个数组
我还有一个阵列内的阵列内 - 这是我的print_r:删除一个项目从数组另一个数组
Array
(
[0] => Array
(
[ProductID] => 180
[ProductName] => Male Thread BSPT Coupling
[ProductImage] => 054-male-thread-bspt-coupling.jpg
[Termination] => 1/4\"
[Length] => 58
[Diameter] => 23
[Part] => 054CVMT14SNN
[Price] => 3.26
[quantity] => 22
)
[1] => Array
(
[ProductID] => 183
[ProductName] => Male Thread BSPT Plug
[ProductImage] => 054-male-thread-bspt-plug.jpg
[Termination] => 1/4\"
[Length] => 38
[Diameter] =>
[Part] => 054PNMT14SXN
[Price] => 0.67
[quantity] => 22
)
)
我需要从阵列中删除,其中部分= X
尝试此(demo):
$arr = array(
'a' => array('h' => 10, 'w' => 40, 'd' => 100, 'part' => 'A10'),
'b' => array('h' => 20, 'w' => 30, 'd' => 400, 'part' => 'A20'),
'c' => array('h' => 30, 'w' => 20, 'd' => 900, 'part' => 'A30'),
'd' => array('h' => 40, 'w' => 10, 'd' => 1600, 'part' => 'A40'),
);
$part = 'A10';
$res = array_filter($arr, function ($elem) use ($part) {
return $elem['part'] != $part;
});
print_r($res);
的$res
将输入数组排除其part
元素设置为的任何项目。
嗨艾哈迈德 - 谢谢这非常重要。不幸的是,该网站是在一个使用PHP 5.3的网络服务器上,其中一些不适用于该版本。 –
怎么回事?自PHP 4> = 4.0.6以来,array_filter可用。顺便说一句关闭是可用的以及自5.3 :) –
嗨艾哈迈德,现在得到这个工作 - 但它删除一个项目,然后当我去删除另一个它增加了以前删除的回 –
试试这个(请注意,这将只删除第一次出现):
if(($key = array_search($delPartWithThisId, $partsArray)) !== false) {
unset($partsArray[$key]);
}
或者:
foreach (array_keys($partsArray, $delPartWithThisId, true) as $key) { unset($partsArray[$key]); }
在第二溶液可变$delPartWithThisId
可以像[1,2,3]
阵列另外我建议使用array_values()
重组数组索引
这将搜索原始数组,对于任何值为'$ delPartWithThisId'的项目,然后取消设置其密钥,但请注意,原始数组不是一维,原始数组是** **阵列** –
请参阅:http://*.com/q/1503579/3933332 – Rizier123
嗨Rizier - 不幸的是,我已经在该页面上,并没有找到一个解决方案,我的数组里面和数组在PHP 5.3 –
除此之外,5.3已经死了2年它应该工作。你有什么错误吗? – Rizier123