php explode - 将数组拆分为行

时间:2016-01-26 17:36:29

标签: php mysql arrays split explode

我有一个包含3列名称 / 职业 / 注册的小部件,用户可以根据需要添加任意数量的人。

但数据是这样的:

数组([0] => [{“姓名”:“Bob [1] =>史密斯”,“职业”:“管理员”,“注册”:“1234”},{“姓名”: “詹姆斯[2] =>理查兹”,“职业”:“技师”,“注册”:“4345353”})

使用的PHP代码

$people=$_POST['q36_addIndividuals'];
$str = $people;
print_r (explode(' ',$str));

我想要的是它看起来像这样:

Bob Smith - 管理员 - 1234
James Richards - 技师 - 4345353

2 个答案:

答案 0 :(得分:2)

你只有一些JSON数据,但它不正确。

正确版本将是:

$data = '[{"Name":"Bob [1] => Smith","Occupation":"Administrator","Registration":"1234"},{"Name":"James [2] => Richards","Occupation":"Technician","Registration":"4345353"}]';

$data = json_decode($data);

foreach ($data as $json) {

    echo $json->Name . ' - ' . $json->Occupation . ' - ' . $json->Registration;
    echo "\n";
}

这将输出如下内容:

Bob [1] => Smith - Administrator - 1234  
James [2] => Richards - Technician - 4345353

但是你应该考虑将Firstname和Lastname存储在两个不同的值中,你可以访问它们。

你也可以"删除" [n] =>,但这是肮脏的方式。我不推荐这个!

$data = '[{"Name":"Bob [1] => Smith","Occupation":"Administrator","Registration":"1234"},{"Name":"James [2] => Richards","Occupation":"Technician","Registration":"4345353"}]';

$data = json_decode($data);

foreach ($data as $json) {

    $json->Name = preg_replace(['/[[(0-9)]]|[=>]|[[]|/', '/   /'], ['', ' '], $json->Name);
    echo $json->Name . ' - ' . $json->Occupation . ' - ' . $json->Registration; // not recommended
    echo "\n";
}

答案 1 :(得分:1)

print_r函数只粘贴数组的结构。

如果你想要一个不同的表单,你需要遍历数组并为每个元素写出来:

 foreach($people as $element){
  echo $element['Name']." - ".
  $element['Occupation']." - ".
  $element['Registration'];  
 }