使用foreach创建数组,同时将每2个项目分组到键中

时间:2013-11-27 20:47:25

标签: php arrays multidimensional-array explode

我有一个字符串,我想爆炸成阵列但是 问题是我需要每一件物品都是团体。

示例字符串:

http://www.example.com, example, http://www.example2.com, example2, http://www.example3.com, example3, http://www.example.com4, example4, http://www.example5.com, example5, http://www.example6.com, example6, 

我想要达到的目的是:

array(  
   [1]=>array(  
        [url] => 'http://www.example.com',  
        [name] => 'example',  
   ),  
   [2]=>array(  
        [url] => 'http://www.example2.com',  
        [name] => 'example2',  
   ),  
   [3]=>array(  
        [url] => 'http://www.example3.com',  
        [name] => 'example3',  
   ),  
   [4]=>array(  
        [url] => 'http://www.example4.com',  
        [name] => 'example4',  
   ),  
   [5]=>array(  
        [url] => 'http://www.example5.com',  
        [name] => 'example5',  
   ),  
   [6]=>array(  
        [url] => 'http://www.example5.com',  
        [name] => 'example6',  
   ),  
);  

依旧......
我试图在很多方面创建这样的阵列,但我想我缺乏 知道如何并且真的会帮助你。 ;)

编辑1(到目前为止尝试过):

$csv_arr    =   array();
$keycounter =   1;
$counter    =   1;


foreach($csv_data as $dataitem) {

    if($counter % 2 == 0) {
        $csv_arr[$keycounter]['keyword']    =   $dataitem;
        $keycounter++;
    }
    else {
        $csv_arr[$keycounter]['url']        =   $dataitem;      
    }

    $counter++;

}

1 个答案:

答案 0 :(得分:4)

如果您可以在,上爆炸(因此您确定其中的网址或字符串中没有,),您可以使用此类代码

$exploded = explode(',', $string);
$max = count($exploded);
$result = array();
for ($i=0; $i<$max; $i+=2) {
    $result[] = array(
        'url' => $exploded[$i],
        'name' => $exploded[($i+1)]
    );
}