我有一个字符串,说是
ID=14,123@@ID=15,789@@
我用
爆炸了$pieces = explode("@@", $contents);
所以现在我有一组数组
array(3)
{
[0]=> string(69) "ID=14,123"
[1]=> string(9) "ID=15,789"
[2]=> string(0) ""
}
然后我想再次爆炸数组中的字符串并使用此
foreach ($pieces as $key => $value){
$pieces[$key] = strpos( $value, "," ) ?
explode( ",", $value ) :
$value;
}
现在我有一个更嵌套的
array(3)
{
[0]=> array(2)
{
[0]=> string(5) "ID=14"
[1]=> string(3) "123"
}
[1]=> array(2)
{
[0]=> string(5) "ID=15"
[1]=> string(3) "789"
}
[2]=> string(0)
""
}
但我想要的是“ID”这个词可以替换成数组的键,所以它变成了
array
{
[ID=14]=> "123"
[ID=15]=> "789"
}
怎么办?我对数组非常不熟悉但很想学习。
答案 0 :(得分:1)
您不能拥有相同的索引。如果你的意思是数组中的索引,这将做的事情:
$string = 'ID,123@@ID,789@@';
$result = array_map(function($item)
{
$temp = explode(',', $item);
return count($temp)==2?[$temp[0] => $temp[1]]:$temp;
},explode('@@', $string));
//var_dump($result);
答案 1 :(得分:1)
$contents = 'ID,123@@ID,789@@';
$pieces = explode("@@", $contents);
$parsed = array();
foreach ($pieces as $key => $value){
$parsed[] = explode(',', $value);
}
$master = array();
foreach ($parsed as $ar) {
$master[][$ar[0]] = $ar[1];
}
print_r($master);