【问题标题】:php explode - split array into rowsphp explode - 将数组拆分为行
【发布时间】:2016-01-26 17:36:28
【问题描述】:

我有一个包含 3 列 Name / Occupation / Reg 的小部件,用户可以根据需要添加任意数量的人。

但是数据是这样来的:

Array ( [0] => [{"Name":"Bob [1] => Smith","Occupation":"Administrator","Registration":"1234"},{"Name":"James [2] => Richards","职业":"技术员","注册":"4345353"}])

使用的 PHP 代码

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

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

Bob Smith - 管理员 - 1234
詹姆斯理查兹 - 技术员 - 4345353

【问题讨论】:

  • 请发布您的完整代码,以便我们进一步帮助您。比如我们不知道$_POST['q36_addIndividuals']的值是什么样的
  • 这是使用的小部件 [link]form.jotform.com/60255263620953 提交到我的 php 文件,其中仅包含以下 php code $people=$_POST['q36_addIndividuals']; $str = $人; print_r (explode(' ',$str));
  • 你能做一个print_r($_POST); 并在你的问题中发布结果吗
  • print_r($_POST);给出以下结果: [{"Name":"Bob smith","Occupation":"ADMIN","Registration":"12233"},{"Name":"James Richards","Occupation":"Tech" ,"注册":"43453543"}]
  • 发布整个数组

标签: php mysql arrays split explode


【解决方案1】:

您只有一些 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";
}

【讨论】:

  • 这成功了!我不能感谢你!非常感谢您花时间帮助我!以及所有其他人!!!!
【解决方案2】:

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

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

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

【讨论】:

  • 我到了那里,确切地知道 print_r 做了什么
  • 它是空白的,我错过了什么吗?
  • 对不起,你能把下面的内容并发布输出,以便我知道数组的一个元素是什么吗?:foreach($people as $element){ print_r("next_element"); print_r($元素);回声“”; }
猜你喜欢
  • 1970-01-01
  • 2021-05-09
  • 1970-01-01
  • 2012-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多