我有这个字符串:
array(array('1','name1','1','0'),array('2','name2','0','1'),array('3','name3','0','1'),array('4','name4','1','1'),array('5','name5','1','0'));
存储在$_POST['data']
字符串I m receiving is via
。load`函数,其中字符串的结构是这样构造的。
我想通过php将其转换为多维数组,这样我就可以轻松地遍历它
到目前为止,我已经通过修改字符串和方法达到了解决方法。
现在我的字符串如下:
1,name1,1,0,|2,name2,0,1,|3,name3,0,1,|4,name4,1,1,|5,name5,1,0,|
方法就是这个
$data2 = $_POST['data2']; /// get data
$data2 = substr_replace($data2 ,"", -2); // eliminate ,|
$data2 = $data2."|"; // add |
$one=explode("|",$data2); // create multidimensional array
$array = array();
foreach ($one as $item){
$array[] = explode(",",$item);
}
我可以保留此解决方案,但我想知道是否有其他方法可以按照第一个请求进行操作
答案 0 :(得分:0)
有一种更好,更简单的方法。您只需要在foreach
循环内使用foreach
循环即可。
$data = array(
array('1','name1','1','0'),
array('2','name2','0','1'),
array('3','name3','0','1'),
array('4','name4','1','1'),
array('5','name5','1','0')
);
foreach( $data as $d ) {
foreach( $d as $value ) {
echo $value;
echo '<br />';
}
}
您可以在线查看Demo
答案 1 :(得分:0)
要解析原始字符串,可以使用eval()
$string = 'array(array('1','name1','1','0'),array('2','name2','0','1'),array('3','name3','0','1'),array('4','name4','1','1'),array('5','name5','1','0'));';
eval('$array = '.$string);
但是可以/应该在服务器上禁用eval,因为它带有安全性问题。
我要做的是使用JSON,您将在其中发布JSON编码:
json_ecnode( $my_array );
然后将其解码:
$array = json_decode( $_POST['data'], true );