在PHP数组中更改索引

在PHP数组中更改索引,php,arrays,indexing,foreach,Php,Arrays,Indexing,Foreach,大家好, [1] => Array ( [0] => joe [1] => male [2] => 24 [3] => 157 [4] => 166 ) [2] => Array ( [0] => bea [1] =&

大家好,

    [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
        )

)
    [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
        )

)
我的任务是更改数组中的索引。 这是我的密码:

$file = Storage::get('upload/test.txt');
$lines = explode('\n', $file);
$array = array_map(function($line) {
    return explode(',', $line);
}, $lines);
print_r($array);
    [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
        )

)
    [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
        )

)
输出为:

    [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
        )

)
    [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]=>阵列 ( [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
        )

)
    [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
        )

)
我需要做的是:

    [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
        )

)
    [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]=>阵列 ( [姓名]=>约翰 [性别]=>男性 [年龄]=>20岁 [高度]=>200 [重量]=>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
        )

)
    [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
        )

)

提前感谢!:)

一个可能的解决方案是创建一个新数组,循环当前数组并添加索引:

    [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
        )

)
    [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
        )

)
$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++;
}

您需要一个关联数组

    [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
        )

)
    [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
        )

)
$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);
}
我希望这有帮助

    [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
        )

)
    [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
        )

)
下面应该以您想要的格式打印数组

    [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
        )

)
    [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
        )

)
print_r($newArray);
很简单,就像这样:

    [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
        )

)
    [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
        )

)
$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);
输出

    [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
        )

)
    [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
        )

)
Array
(
    [0] => Array
        (
            [name] => joe
            [sex] => male
            [age] => 24
            [height] => 157
            [weight] => 166
        )

)

    [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
        )

)
    [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
        )

)
注意:如果两个数组的大小不相同,则
array\u combine
将爆炸

    [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
        )

)
    [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
        )

)
您也可以这样做(84字节)

    [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
        )

)
    [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
        )

)
相同输出

    [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
        )

)
    [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
        )

)

以下是我将如何实现您想要实现的目标

    [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
        )

)
    [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
        )

)
<?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);
?>

@jediArvin尝试时发生了什么?