如何使用php在数组对象中推送数据
我期待这种数据 但我总是得到这样的数据 这是我尝试的代码,我只想将$data上的数据传输到$new_数据,但它总是给出不同的结果,我不知道如何重构代码如何使用php在数组对象中推送数据,php,Php,我期待这种数据 但我总是得到这样的数据 这是我尝试的代码,我只想将$data上的数据传输到$new_数据,但它总是给出不同的结果,我不知道如何重构代码 $data=[ 0=>数组:3[ 0=>“员工ID” 1=>“时间(YYYY-MM-DD HH:MM:ss)” 2=>“超时(YYYY-MM-DD HH:MM:ss)” ] 1=>数组:3[ 0 => "10" 1 => "2017-03-28 05:29:56" 2 => "2017-03-29 05:29:56" ] 2=>数组:3[ 0 =
$data=[
0=>数组:3[
0=>“员工ID”
1=>“时间(YYYY-MM-DD HH:MM:ss)”
2=>“超时(YYYY-MM-DD HH:MM:ss)”
]
1=>数组:3[
0 => "10"
1 => "2017-03-28 05:29:56"
2 => "2017-03-29 05:29:56"
]
2=>数组:3[
0 => "12"
1 => "2017-03-28 05:29:56"
2 => "2017-03-29 05:29:56"
]
3=>false
]
$new_data=[];
对于($i=1;$i<$len-1;$i++){
对于($x=0;$x<3;$x++){
数组推送($new_data,$data[$i][$x]);
}
}
请帮我解释一下我的逻辑,我只是一个新的数组你有一个数组$new\u data,你推送了六个新项目。这就是为什么您得到一个包含六项的单个数组 如果您将其更改为此,您将得到您想要的:
for ($i = 1; $i < $len - 1; $i++) {
$new_item = [];
for ($x = 0; $x < 3; $x++) {
array_push($new_item, $data[$i][$x]);
}
array_push($new_data, $new_item);
}
如果总是希望推送完整的块,则不需要迭代这三个单独的项
或者,因为您似乎只想删除第一个和最后一个条目:
unset($data[0]);
array_splice($data, count($data) - 1, 1); // Remove last entry and rebuild indices.
您有一个数组
$new\u data
,并推送六个新项目。这就是为什么您得到一个包含六项的单个数组
如果您将其更改为此,您将得到您想要的:
for ($i = 1; $i < $len - 1; $i++) {
$new_item = [];
for ($x = 0; $x < 3; $x++) {
array_push($new_item, $data[$i][$x]);
}
array_push($new_data, $new_item);
}
如果总是希望推送完整的块,则不需要迭代这三个单独的项
或者,因为您似乎只想删除第一个和最后一个条目:
unset($data[0]);
array_splice($data, count($data) - 1, 1); // Remove last entry and rebuild indices.
你能发布你的
$data
的内容吗?我猜,$new_data
只是一个数组;您不想将3$data[$i][0]
,$data[$i][1]
,$data[$i][2]
值单独放入数组中。您希望将这3个值放入一个数组,然后将该数组推送到结果数组中。因此,将内部for循环中的值放入一个数组,然后在内部for循环之后,您可以将该数组推入结果数组。您可以发布$data
的内容吗?我猜,$new_data
只是一个数组;您不想将3$data[$i][0]
,$data[$i][1]
,$data[$i][2]
值单独放入数组中。您希望将这3个值放入一个数组,然后将该数组推送到结果数组中。因此,将内部for循环中的值放入数组,然后在内部for循环之后,可以将该数组推入结果数组。我添加了两个更简单的解决方案。我添加了两个更简单的解决方案。
for ($i = 1; $i < $len - 1; $i++) {
array_push($new_data, $data[i]);
}
unset($data[0]);
array_splice($data, count($data) - 1, 1); // Remove last entry and rebuild indices.