2014-07-16 62 views
0

我有一个PHP多维阵列(A)和我想建立从该阵列另一个阵列(B)修改阵列中循环使用PHP

我的代码是

$question = array(
    "ques_15" => array(
     "name" => array(
      "0" => "aaa" 
     ) 
    ), 
    "ques_16" => array(
     "name" => array(
      "0" => "bbb", 
      "1" => "ccc" 
     ) 
    ) 
); 
$i=0; 
foreach($question as $k=>$v) 
{ 
    list(,$qid) = explode("_",$k); 
    $filename .= $question[$k]['name'][$i]."#&"; 
    $insertData[] = array(':quid'=>$qid,':answer'=>$filename); 
    $i++; 
} 
echo '<pre>'; 
print_r($insertData); 
echo '</pre>'; 

它打印

Array 
(
    [0] => Array 
     (
      [:quid] => 15 
      [:answer] => aaa#& 
     ) 

    [1] => Array 
     (
      [:quid] => 16 
      [:answer] => aaa#&ccc#& 
     ) 

) 

但我希望它是

Array 
(
    [0] => Array 
     (
      [:quid] => 15 
      [:answer] => aaa 
     ) 

    [1] => Array 
     (
      [:quid] => 16 
      [:answer] => aaa#&ccc 
     ) 

) 

回答

3
$filename .= (empty($filename) ? '' : '#&') . $question[$k]['name'][$i]; 

如果aaa#&ccc是一个错字,它应该是bbb#&ccc,那么你可以简单地做:

foreach($question as $k=>$v) 
{ 
    list(,$qid) = explode("_",$k); 
    $filename = implode("#&", $v['name']); 
    $insertData[] = array(':quid'=>$qid,':answer'=>$filename); 
} 
+0

谢谢,但答案的关键越来越空白:( – Raj

+1

@Raj然后解释你为什么要'AAA#&ccc'而不是'BBB&ccc'作品[这里](HTTP:// ideone .com/yQrUPS) – meze

+0

非常抱歉是的这是一个错字,它应该是bbb&ccc – Raj

4
$i=0; 

foreach($question as $k=>$v) 
{ 
    list(,$qid) = explode("_",$k); 
    $insertData[$i][':quid'] = $qid; 
    $insertData[$i][':answer'] = implode('#&',$v['name']); 
    $i++; 
} 
+0

谢谢你的建议也是如此。 – Raj

0

删除 “#&”,并将其放置在状态。它会工作;

只需添加一个条件。

$filename .= $question[$k]['name'][$i]; 
if(!empty($filename)){ 
    $filename .= '#&'; 
}