PHP从关联数组中删除元素

我有一个看起来像这样的PHP数组:

Index              Key     Value

[0] 1 Awaiting for Confirmation

[1] 2 Assigned

[2] 3 In Progress

[3] 4 Completed

[4] 5 Mark As Spam

当我var_dump数组值我得到这个:

array(5) { [0]=> array(2) { ["key"]=> string(1) "1" ["value"]=> string(25) "Awaiting for Confirmation" } [1]=> array(2) { ["key"]=> string(1) "2" ["value"]=> string(9) "Assigned" } [2]=> array(2) { ["key"]=> string(1) "3" ["value"]=> string(11) "In Progress" } [3]=> array(2) { ["key"]=> string(1) "4" ["value"]=> string(9) "Completed" } [4]=> array(2) { ["key"]=> string(1) "5" ["value"]=> string(12) "Mark As Spam" } }

我想删除“ 和“

。我知道可以unset[$array[3],$array[4]),但是问题是有时索引号可能会不同。

是否可以通过匹配值名称而不是键值来删除它们?

回答:

您的数组很奇怪:

如果这样声明数组,会不会容易得多:

$array = array(

1 => 'Awaiting for Confirmation',

2 => 'Asssigned',

3 => 'In Progress',

4 => 'Completed',

5 => 'Mark As Spam',

);

那将允许您使用keyas 的值作为索引来访问数组。

而且您将能够使用函数来搜索值,例如 :

$indexCompleted = array_search('Completed', $array);

unset($array[$indexCompleted]);

$indexSpam = array_search('Mark As Spam', $array);

unset($array[$indexSpam]);

var_dump($array);

比使用阵列更容易,不是吗?


相反,数组如下所示:

$array = array(

array('key' => 1, 'value' => 'Awaiting for Confirmation'),

array('key' => 2, 'value' => 'Asssigned'),

array('key' => 3, 'value' => 'In Progress'),

array('key' => 4, 'value' => 'Completed'),

array('key' => 5, 'value' => 'Mark As Spam'),

);

您必须遍历所有项目,分析value,然后取消设置正确的项目:

foreach ($array as $index => $data) {

if ($data['value'] == 'Completed' || $data['value'] == 'Mark As Spam') {

unset($array[$index]);

}

}

var_dump($array);

即使可行,也不是那么简单…而且我坚持:您是否可以更改数组的格式,以使用更简单的键/值系统?

以上是 PHP从关联数组中删除元素 的全部内容, 来源链接: utcz.com/qa/429844.html

回到顶部