duanchen7401 2018-10-29 10:36
浏览 44
已采纳

制作关联数组 - array_combine()期望参数1为数组,给定[duplicate]字符串

This question already has an answer here:

I am trying to create an associative array where the first element will represent the headers.

I would like to take this array:

Array
(
    [0] => Name,Phone number
    [1] => John,555666123
    [2] => Bobby McQueen, 556699887
)

And turn it into this array:

Array
(
    [0] => Array
        (
            [Name] => John
            [Phone number] => 555666123
        )

    [1] => Array
        (
            [Name] => Bobby McQueen
            [Phone number] => 556699887
        )
)

Here is my code

$assoc_array = array();
$my_array = explode("
", file_get_contents($file->getPathName()));

$header = array_shift($my_array);


foreach ($my_array as $row) {
  $assoc_array[] = array_combine($header, $row);
}

But I am getting error:

array_combine() expects parameter 1 to be array, string given

</div>
  • 写回答

2条回答 默认 最新

  • doujunchi1238 2018-10-29 10:48
    关注

    You need to explode() $header and $row both by ,

    $header = explode(',',array_shift($my_array));//convert header into array
    
    
    foreach ($my_array as $row) {
      //combine header and $row which also become an array after explode()
      $assoc_array[] = array_combine($header, explode(','$row));
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?