大家好,
我受命更改数组中的索引。 这是我的代码:
$file = Storage::get('upload/test.txt');
$lines = explode('\n', $file);
$array = array_map(function($line) {
return explode(',', $line);
}, $lines);
print_r($array);
输出为:
数组 ( [0] =>数组 ( [0] =>约翰 [1] =>男性 [2] => 20 [3] => 200 [4] => 174 )
[1] => Array
(
[0] => joe
[1] => male
[2] => 24
[3] => 157
[4] => 166
)
[2] => Array
(
[0] => bea
[1] => female
[2] => 18
[3] => 153
[4] => 160
)
[3] => Array
(
[0] => edd
[1] => male
[2] => 30
[3] => 180
[4] => 180
)
)
我需要做的是:
数组 ( [0] =>数组 ( [名称] =>约翰 [性别] =>男 [年龄] => 20 [高度] => 200 [重量] => 174 )
[1] => Array
(
[name] => joe
[sex] => male
[age] => 24
[height] => 157
[weight] => 166
)
[2] => Array
(
[name] => bea
[sex] => female
[age] => 18
[height] => 153
[weight] => 160
)
[3] => Array
(
[name] => edd
[sex] => male
[age] => 30
[height] => 180
[weight] => 180
)
)
先谢谢! :)
答案 0 :(得分:1)
您需要一个关联数组。
$newArray = []; // create a new empty array to store your associative arrays.
// Loop through each element in array.
foreach($array as $aPerson) {
// map each element in array into an associative array.
$person = [
"name" => $aPerson[0],
"sex" => $aPerson[1],
"age" => $aPerson[2],
"height" => $aPerson[3],
"weight" => $aPerson[4]
];
// Add your associative array to your new re-indexed array.
array_push($newArray, $person);
}
我希望这会有所帮助。
以下内容应以您想要的格式打印数组。
print_r($newArray);
答案 1 :(得分:1)
简单,像这样:
glBegin(GL_TRIANGLES);
glColor3f(1,0,0);
glVertex3f(-10,-10,0);
glColor3f(0,1,0);
glVertex3f(10,-10,0);
glColor3f(0,0,1);
glVertex3f(0,10,0);
glEnd();
输出
$arr = [
['joe','male',24,157,166]
];
#mind the & pass by refrence
foreach($arr as &$item){
$item = array_combine(['name','sex','age','height','weight'],$item);
}
print_r($arr);
如果两个数组的大小不同,请注意Array
(
[0] => Array
(
[name] => joe
[sex] => male
[age] => 24
[height] => 157
[weight] => 166
)
)
会爆炸。
您也可以这样做(84字节)
array_combine
相同的输出
答案 2 :(得分:0)
一种可能的解决方案是创建一个新数组,遍历当前数组并添加索引:
$new_array = array();
foreach ($array as $element) {
$new_array[] = array(
'name' => $element[0],
'sex' => $element[1],
'age' => $element[2],
'height' => $element[3],
'weight' => $element[4]
);
$i++;
}
答案 3 :(得分:0)
这就是我要如何实现的目标
<?php
$fp = @fopen('upload/test.txt', 'r'); $props = ['name', 'sex', 'age', 'height', 'weight']; $r = [];
if($fp) {
while(($line = fgets($fp)) !== false) {
$x = explode(',', $line); $a = [];
foreach($props as $k => $v){
$a[$v] = $x[$k];
}
$r[] = $a;
}
fclose($fp);
}
print_r($r);
?>