[英]how to append element to array with specific index in php
我是 php 的新手。 我正在尝试获取特殊数组中每个元素的键和值。 我想从零索引开始将它们保存/推送到另一个数组中。 当然(foreach 循环)是这里最好的工具。 请按您的代码帮助我。 我知道描述这个问题有点困难,所以我有一些图纸给你。
$info = array(
<--key--> <--value-->
[10] => 'apple',
[8] => 'orange',
[2] => 'banana',
[23] => 'peach',
)
now I want to have an array like this:
$myGoal = array(
<-key-> <--------value--------->
[0] => array('10'=>'apple'),
[1] => array('8'=>'orange'),
[2] => array('2'=>'banana'),
[3] => array('23'=>'peach')
)
我想我需要的代码应该如下所示:
$info = array(
[10] => 'apple',
[8] => 'orange',
[2] => 'banana',
[23] => 'peach',
)
$index = 0;
$myGoal = array();
foreach($info as $amount => $friut){
$myGoal[$index] = [$amount][$friut];
$index++;
}
我会感谢任何可以帮助我的人。
关于语法$myGoal[$index] = [$amount][$friut];
等号之后的部分是创建一个具有单个值$amount
的数组,然后尝试使用不存在的$friut
值对数组进行索引。
您可以更新语法以使用key => value
将数组添加到索引
改变
$myGoal[$index] = [$amount][$friut];
至
$myGoal[$index] = [$amount => $friut];
Output
Array
(
[0] => Array
(
[10] => apple
)
[1] => Array
(
[8] => orange
)
[2] => Array
(
[2] => banana
)
[3] => Array
(
[23] => peach
)
)
正如@kaczmen指出的那样,如果你只想 append 你不需要索引,你可以使用
$myGoal[] = [$amount => $friut];
您可以使用array_chunk
使用块大小为 1 来执行此操作。
$myGoal = array_chunk($info, 1, true);
请务必将第三个参数设置为true
以保留密钥。
此外,与您的要求没有直接关系,但我想建议使用 amount 作为数组键是有风险的。 如果您有相同数量的两个项目,第二个将覆盖第一个。
首先初始化一个数组,然后将键值存储到一个新数组中。
$info = array("10" => 'apple',"8" => 'orange',"2" => 'banana',"23" => 'peach');
$new=array();
foreach($info as $key=>$info1)
{
$new[] = [$key=>$info1];
}
echo "<pre>";
print_r($new);
希望这可以帮助。
你可以使用array_walk
,如果你想从 0 开始,你不需要声明$index=0
0
。 您可以只使用$n[]
它会自动从0
索引开始
array_walk($info,function($v,$k)use(&$n){$n[]=[$k=>$v];});
print_r($n);
工作示例:- https://3v4l.org/DTACm
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.