PHP:将逗号分隔列表转换为多维数组

时间:2017-09-06 07:53:36

标签: php arrays multidimensional-array

我有一个列字符串(以逗号分隔的列列表):

$columns = "project,description,due_date,tags";

转换为:

$columns = array(
  array( 'db' => 'project',  'dt' => 1 ),
  array( 'db' => 'description',  'dt' => 2 ),
  array( 'db' => 'due_date',  'dt' => 3 ),
  array( 'db' => 'tags',  'dt' => 4 )
);

7 个答案:

答案 0 :(得分:4)

试试这个

    <?php
    $columns = "project,description,due_date,tags";
    $columns = explode(",", $columns);
    $cArray = array();
    foreach ($columns as $key => $value) {
        $cArray[$key]['db'] = $value;
          $cArray[$key]['dt'] = $key+1; 
    }
    echo '<pre>'; print_r($cArray); echo '</pre>';

<强>输出: -

Array
(
    [0] => Array
        (
            [db] => project
            [dt] => 1
        )

    [1] => Array
        (
            [db] => description
            [dt] => 2
        )

    [2] => Array
        (
            [db] => due_date
            [dt] => 3
        )

    [3] => Array
        (
            [db] => tags
            [dt] => 4
        )

)

?>

答案 1 :(得分:1)

$columns = "project,description,due_date,tags";

$col_Arr = explode(',',$columns);
$i=1;
$new_arr = [];
foreach($col_Arr as $val){
    $new_arr[] = array('db'=>$val,'dt'=>$i);
    $i++;
}
echo "<pre>"; print_r($new_arr); echo "</pre>";

答案 2 :(得分:1)

你可以这样做:

$arr= explode(",", $columns );
$result = [];
for(int i =0; i<arr.length; i++)
  $result[] = ['db' => $arr[i], 'dt' => i+1];

答案 3 :(得分:1)

您可以尝试这样

$columns = "project,description,due_date,tags";
$explode_arr = explode(',', $columns);
$arrayval = "";
for($i=0; $i< count($explode_arr); $i++)
{
  $arrayval[$i]['db'] = $explode_arr[$i];
  $arrayval[$i]['dt'] = ($i+1);
}
print_r($arrayval);
exit;

答案 4 :(得分:0)

您可以使用splitexplode将字符串拆分为一维数组,然后使用foreach迭代它。

答案 5 :(得分:0)

首先,您需要将字符串转换为数组:

$columns = "project,description,due_date,tags";
$columns_array = explode(',', $columns);
// then you need to build your multi-dimensional array
$result = array();
foreach ($columns_array as $key => $item) {
    $result[] = array(
        'db' => $item,
        'dt' => $key+1
    );
}
var_dump($result);

答案 6 :(得分:0)

$columns = "project,description,due_date,tags";
$myArray = explode(',', $columns);
$len=sizeof($myArray);
for($i=0;$i<$len;$i++){
    $newArr[] = array('db'=>$myArray[$i],'dt'=>$i);
}
 echo '<pre>'; print_r($newArr); echo '</pre>';

工作PHP Fiddle