Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何更改多维数组中的日期格式并使用键迭代所有数组_Php_Laravel - Fatal编程技术网

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

Php 如何更改多维数组中的日期格式并使用键迭代所有数组,php,laravel,Php,Laravel,我有一个带有键和值的多维数组,有些键也是空的。然后我想为内部非空数组设置一个值 $oldArray = array("Lexus LS600" => array(), "Toyota Alphard" => array(), "Benz S550" => array(0 => array(

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

 $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\u time
00: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 ($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;
        }
    }
}
它将返回\u time为“00:00”,并将空索引保留到数组中。

非常适合这种情况

$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 (
  ),
) 
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循环遍历有限深度数组,并使所有值都可以通过引用修改(
&
在变量之前)。这样做时,您不需要创建单独的数组,只需更新输入数组即可它非常易于阅读和维护。

代码:()

输出:

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 (
  ),
) 
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 (
  ),
)

你尝试过的代码放在哪里