如何将这个字符串转换为数组



我正试图将我在JS中创建的这个数组转换为在foreach中使用的数组,并使用数组的数据。我使用的是框架代码点火器。

这里是我在JS文件中创建数组的地方。

function get_array(){
var datos = []; // Array
$("#tbl_esctructura tbody > tr").each(function() {
var item = $(this).find('td:eq(1)').text();
var cantidad = $(this).find('td:eq(4)').text();
datos.push({
"item": item,
"cantidad": cantidad
});
});
datos =  JSON.stringify(datos); 
$.ajax({
data: {
'datos': datos
},
url: "<?php echo base_url() ?>Controller/data_from_array",
type: 'POST',
dataType : "json",
success: function(response) {
}
});
}

我发送给控制器的数据是这样的。[{"item":"1","cantidad":"2"},{"item":"2","cantidad":"4"}]

现在我的控制器PHP

public function data_from_array(){
$data   =  $this->input->post('datos', TRUE);
$items = explode(',', $data);
var_dump($items);
foreach ($items as $row) {
echo  $row->item.'<br>';
}
}

var_dump($items),这是的结果

array(2) { [0]=> string(12) "[{"item":"1"" [1]=> string(16) ""cantidad":"1"}]" } }

在这个回波中,我得到了这个错误Message: Trying to get property 'item' of non-object

我不知道我做错了什么

看起来像一个标准的JSON。请确保在json_decode函数(第二个参数(中添加true,以返回数组而不是对象。

$result = json_decode($data, true); 

看看JSON,因为这是当今网络和移动应用程序数据交换的标准,并了解更多关于函数的信息:

https://www.php.net/manual/en/function.json-decode.php

还可以查看将数组编码为JSON格式的对应文件:

https://www.php.net/manual/en/function.json-encode.php

您可以将此代码用作分解返回数组,而不是对象。

public function data_from_array(){
$data   =  $this->input->post('datos', TRUE);
$items = explode(',', $data);
var_dump($items);
foreach ($items as $row) {
echo  $row["item"].'<br>';
}

有两种情况:

  1. 如果您想解析JSON对象,那么

    $items = json_decode($data); // instead of $items = explode(',', $data);
    
  2. 如果您想将数据视为字符串,则

    echo  $row[0].'<br>'; // instead of echo  $row->item.'<br>';
    

相关内容

  • 没有找到相关文章