在下面的数组中(我已经存储在$_SESSION['doc_brick_array']中),我尝试用brick0查找元素。我想删除这个元素,然后重新索引外部数组.我该怎么做?
Array
(
[0] => Array
(
[brick0] => Array
(
[city_name] => Lahore
[clinic_name] => shifa hospital
[attendant_name] => ali
[drd1_cell1] => 03017666454
[mbv] => 666
[brick_name] => LHR-0002
[clinic_address] => i-8 markaz
[drd1_phone] => 9798797
[drd1_cell2] => 04037777888
[drd1_email] => abc@yahoo.com
[visit_time] => m
)
)
[1] => Array
(
[brick1] => Array
(
[city_name] => Rawalpindi
[clinic_name] => aljanat hospital
[attendant_name] => kanzal
[drd1_cell1] => 03014544567
[mbv] => 6000
[brick_name] =>
[clinic_address] => i-9 markaz
[drd1_phone] => 07337837
[drd1_cell2] => 03017767575
[drd1_email] => abcd@yahoo.com
[visit_time] => m
)
)
)我尝试过的代码
for($g=0; $g<=count($_SESSION['doc_brick_array']); $g++){
if (($key = array_search($brick_code, $_SESSION['doc_brick_array'][$g])) !== false) {
unset($_SESSION['doc_brick_array'][$key]);
$_SESSION['doc_brick_array'] = array_values($_SESSION['doc_brick_array']);
}
}发布于 2016-02-26 16:23:38
我想你现在想要的是值(),它来自PHP.net站点
array_values()返回数组中的所有值,并对数组进行数字索引。
例如:
$a = array(1 => 'one', 2 => 'two', 3 => 'three');
unset($a[2]);
/* will produce an array that would have been defined as
$a = array(1 => 'one', 3 => 'three');
and NOT
$a = array(1 => 'one', 2 =>'three');
*/
$b = array_values($a);
// Now $b is array(0 => 'one', 1 =>'three')发布于 2016-02-26 20:52:35
可以使用array_filter从$_SESSION['doc_brick_array']中删除具有brick0键的任何元素。
$x = array_filter($_SESSION['doc_brick_array']), function($y) {
return !isset($y['brick0']);
});然后使用array_values重新索引结果。
$_SESSION['doc_brick_array']) = array_values($x);https://stackoverflow.com/questions/35656619
复制相似问题