如何更改多维数组中的日期格式,并用键迭代所有数组



我有一个包含键和值的多维数组,有些键也是空的。然后我想为内部非空数组设置一个值。

$oldArray = array("Lexus LS600" => array(), 
"Toyota Alphard" => array(), 
"Benz S550" => array(0 => array(
"card_no" => "G2FPCBS3",
"travel_date" => "2020-09-10"
"travel_time" => "16:15:00",
"car_id" => 12,
"return_time" => "17:25")),
"BMW X6" => array());

我有这个数组,但我想在整个数组中设置return_time00:00。我尝试了foreach循环,但foreach是移除空数组,但我也想要空数组。

我想要这种类型的数组:-

$newArray = array("Lexus LS600" => array(), 
"Toyota Alphard" => array(), 
"Benz S550" => array(0 => array(
"card_no" => "G2FPCBS3",
"travel_date" => "2020-09-10"
"travel_time" => "16:15:00",
"car_id" => 12,
"return_time" => "00:00")),
"BMW X6" => array());

再试试这个foreach,如果我理解正确的话,我想它会解决你的问题。

foreach ($arrays as $key => $values) {
if (is_array($values)) {
if (count($values)) {
foreach ($values as $index => $data) {
$arrays[$key][$index]['return_time'] = "00:00";
}
} else {
$arrays[$key] = $values;
}
}
}

它将把return_time更改为";00:00";并保留数组的空索引。

array_walk_recurive((非常适合这种情况。

$oldArray = array("Lexus LS600" => array(), 
"Toyota Alphard" => array(), 
"Benz S550" => array(0 => array(
"card_no" => "G2FPCBS3",
"travel_date" => "2020-09-10",
"travel_time" => "16:15:00",
"car_id" => 12,
"return_time" => "17:25")),
"BMW X6" => array());
$keySearch = "return_time";
$replaceWith = "00:00";
array_walk_recursive(
$oldArray,
function(&$val,$key) use($keySearch,$replaceWith){
if($key == $keySearch) $val = $replaceWith; 
}
);
var_export($oldArray);

输出:

array (
'Lexus LS600' => 
array (
),
'Toyota Alphard' => 
array (
),
'Benz S550' => 
array (
0 => 
array (
'card_no' => 'G2FPCBS3',
'travel_date' => '2020-09-10',
'travel_time' => '16:15:00',
'car_id' => 12,
'return_time' => '00:00',
),
),
'BMW X6' => 
array (
),
) 

使用两个foreach循环遍历有限深度数组,并通过引用修改所有值(变量之前的&(。在执行此操作时,您不需要创建单独的数组,只需更新输入数组即可它非常易于阅读和维护

代码:(演示(

foreach ($array as &$cars) {
foreach ($cars as &$entry) {
if ($entry) {
$entry["return_time"] = "00:00";
}
}
}
var_export($array);

输出:

array (
'Lexus LS600' => 
array (
),
'Toyota Alphard' => 
array (
),
'Benz S550' => 
array (
0 => 
array (
'card_no' => 'G2FPCBS3',
'travel_date' => '2020-09-10',
'travel_time' => '16:15:00',
'car_id' => 12,
'return_time' => '00:00',
),
),
'BMW X6' => 
array (
),
)

最新更新