【问题标题】:Change the Array Format更改数组格式
【发布时间】:2018-01-18 08:40:51
【问题描述】:

我有一个页面打印出这个值:

"Firstname","Ana","George","Wilson"
"Lastname","Smith","Spencer","Carey"
"Age","18","20","22"

我使用 file_get_contents 和 str_getcsv 获取这些值。

$array= str_getcsv($test);

我得到的数组结果是这样的

Array ( [0] =>
"Firstname"
    [1] => 'Ana'
    [2] => 'George'
    [3] => 'Wilson'
"Lastname"
    [4] => 'Smith'
    [5] => 'Spencer'
    [6] => 'Carey'
"Age"
    [7] => 18
    [8] => 20
    [9] => 22
))

无论如何我可以将数组格式更改为这个吗?

Array
(
    [0] => Array
        (
            [0] => 'Ana'
            [1] => 'George'
            [2] => 'Wilson'
        )

    [1] => Array
        (
            [0] => 'Smith'
            [1] => 'Spencer'
            [2] => 'Carey'
        )
    [2] => Array
        (
            [0] => 18
            [1] => 20
            [2] => 22
        )
)

【问题讨论】:

  • The Array results that I get is this-> 我不认为这是正确的数组结构。请检查并更正。执行var_export($explode); 并将该输出添加到问题中
  • 您好,很抱歉,我尝试使用 str_getcsv 而不是爆炸,我现在已经编辑了我的问题,谢谢
  • 你能检查一下我的答案吗

标签: php arrays explode


【解决方案1】:

建议您使用file(),而不是使用file_get_contents()str_getcsv()

像下面这样:-

<?php

$test = file('test.txt'); // you can add your file url here

echo "<pre/>";print_r($test);// initial array

foreach($test as &$te){
     $new_array = explode(',',$te);
     unset($new_array[0]);
     $te = array_values($new_array);
}

echo "<pre/>";print_r($test); // modified and desired array

【讨论】:

  • 您好,非常感谢!使用它确实得到了我想要的结果。我通过 URL 使用 file_get_contents(),我试过了,它也能正常工作。非常感谢:)
  • @c18online 很高兴为您提供帮助:):)
  • 我使用了您建议的确切代码,我只是将 txt 替换为 url :)
【解决方案2】:

将给定数组更改为指定格式:

$array = ['Firstname' => ['Ana', 'George', 'Wilson'], 'Lastname' => ['Smith', 'Spencer', 'Carey'], 'Age' => [18, 20, 22]];

$new_array = [];
foreach ($array as $key => $value) {
    $new_array[] = $value;
}

print_r($new_array);

Array
(
    [Firstname] => Array
        (
            [0] => Ana
            [1] => George
            [2] => Wilson
        )

    [Lastname] => Array
        (
            [0] => Smith
            [1] => Spencer
            [2] => Carey
        )

    [Age] => Array
        (
            [0] => 18
            [1] => 20
            [2] => 22
        )

)

【讨论】:

    【解决方案3】:

    试试这个兄弟,希望能帮到你:

    $array = array(0=> array(
                  'firstname' => array(1 => 'Ana', 2 => 'George', 3=>'Wilson'),
                   'lastname' => array(4=>'Smith', 5=>'Spencer', 6=> 'Carey'),
                    'age' => array(7=>18,8=>20,9=>22)
                   ));
    
     $newArray = array();
     echo "<pre/>";print_r($array);
     foreach($array as $key=>$new){
    
    
       foreach($new as $k=>$d){
    
          $newArray[] = array_values($d);
       }
     }
     echo "</br>New Array Format: </br>";
     echo "<pre/>";print_r($newArray);
    

    【讨论】:

    • 嗨@dee我也试过这个,它也得到了我想要的结果谢谢:)
    猜你喜欢
    • 1970-01-01
    • 2015-05-29
    • 2011-09-01
    • 2017-09-29
    • 1970-01-01
    • 1970-01-01
    • 2023-01-02
    • 2021-09-03
    • 1970-01-01
    相关资源
    最近更新 更多