从PHP字符串创建数组

时间:2017-07-04 14:40:52

标签: php arrays string

我们说我有一个像

这样的字符串
$str = "BKL|bkl,EXH|exh,FFV|ffv,LEC|lec,AUE|aue,SEM|SEM";

我想要一个像:

这样的数组
array( array("title"=>"BKL", "value"=>bkl),
array("title"=>"EXH", "value"=>exh),
array("title"=>"FFV", "value"=>ffv),
array("title"=>"LEC", "value"=>lec),
array("title"=>"AUE", "value"=>aue),
array("title"=>"SEM", "value"=>SEM),
); 

我在这里找到了一个解决方案:How to create particular array from string in php但这给了我一个像:

这样的数组
Array
(
    [BKL] => bkl
    [EXH] => exh
    [FFV] => ffv
    [LEC] => lec
    [AUE] => aue
    [SEM] => sem
)

非常感谢。

2 个答案:

答案 0 :(得分:1)

您需要做的就是改变阵列的构建方式......

$str = "BKL|bkl,EXH|exh,FFV|ffv,LEC|lec,AUE|aue,SEM|sem";

$final = array();

foreach (explode(',', $str) as $pair) {
  list($key, $value) = explode('|', $pair);
  $final[] = ['title'=>$key, 'value'=>$value];
}

print_r($final);

答案 1 :(得分:1)

  

使用您希望在keyvalues

的foreach中显示的字符串

演示:https://eval.in/827426

<?php

$str = "BKL|bkl,EXH|exh,FFV|ffv,LEC|lec,AUE|aue,SEM|sem";

$final = array();

foreach (explode(',', $str) as $pair) {
  list($key, $value) = explode('|', $pair);
  $final[] = ['Title'=>$key .',', 'Value'=>$value];
}

echo "<pre>";
print_r($final);
echo "</pre>";
?>