gpt4 book ai didi

php - 将一个++数字变量设置为数组键

转载 作者:行者123 更新时间:2023-12-02 07:35:28 25 4
gpt4 key购买 nike

我现在有这段代码,它获取日期和时间。我想创建一种编号索引,因为我在那个 foreach 循环中返回了大约 10 个日期和时间。它在一个函数中,我需要返回这个数组以便在其他地方使用它。

$i = 0;
foreach ($data as $key =>$value) {
$new_data = array (
$i => array (
"date"=> $value->DATE,
"time"=> $value->TIME,
)
);
$i++;
}

我希望它看起来更像这样

Array (
[0] => Array (
[date] => whatever date
[time] => whatever time
)
[1] => Array (
[date] => whatever date
[time] => whatever time
)
[2] .. etc
)

原来这不是我得到的。我明白了。

Array (
[10] => Array (
[date] => whatever date
[time] => whatever time
)

它只打印出一个/只给了我十分之一。我怎样才能让它保持对 $i 变量进行++ 运算,以允许我在编号的索引中获取它?为什么只显示第十个?

最佳答案

你可能只想要这个:

$new_data = array();
foreach ($data as $value) {
$new_data[] = array (
"date"=> $value->DATE;
"time" => $value->TIME;
);
}

首先,如果没有 [],您只需在每次迭代时为 $new_data 变量分配一个新值。使用它,您可以在每一步将一个 元素附加到数组;这显然是在这种情况下应该做的。

其次,在这种情况下您不必使用另一个变量:索引从 0 开始,并且每个新的 [] 都应该增加。

最后(感谢@reformed 在评论中提到这一点),如果您实际上不使用数组的键,则不必编写长格式的 foreachforeach $arr as $val 就足够了。


在我看来,可以用 array_map 重写得更简洁。 :

$new_data = array_map(function($val) { return array(
'date' => $val->DATE,
'time' => $val->TIME
); }, $data);

当想要基于另一个数组创建一个普通数组时,这个函数通常非常适合,并且这个新数组的每个元素都以某种方式基于原始集合的相应元素。

我在这里使用了一个匿名函数作为 array_map 的参数,它从 PHP 5.3 开始可用。

关于php - 将一个++数字变量设置为数组键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16968018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com