0

我有一个字符串,说它

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" 
}

那怎么办?我对数组非常不熟悉,但很想学习。

4

2 回答 2

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);
于 2013-11-06T14:28:11.063 回答
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);
于 2013-11-06T14:28:17.947 回答