2013-01-02 70 views
0

我試圖通過這個數組中迭代並刪除任何類型排序上:使用下面的代碼(1,2,3,4等)RecursiveIteratorIterator與索引元素多維數組

array(0 => array ('col1' => 'value', 'col2' => 'value', 'col3' => 'value', 'col4' => value', 'col5' => 'value', 'col6' => array ('string' => array ('col7' => 'value' , 'col8' => 'value'),),), 

    1 => array ('col1' => 'value', 'col2' => 'value', 'col3' => 'value', 'col4' => array (), 'col5' => 'value', 'col6' => array ('string' => array (),), ), 

    2 => array ('col1' => 'value', 'col2' => 'value', 'col3' => 'value', 'col4' => array (), 'col5' => 'value', 'col6' => array ('string' => array (),),),) 

foreach($json['orders']['cnr_output_ship_to_header'] as $header) 
{ 



    $iterator_orders = new \IteratorIterator(new \ArrayIterator($header)); 
    $iterator_guests = new \RecursiveIteratorIterator(new\RecursiveArrayIterator($header['guests']['cnr_output_guest_detail'])); 
    $iterator_items = new \RecursiveIteratorIterator(new \RecursiveArrayIterator($header['items']['cnr_output_item_detail'])); 


$orders = (array)iterator_to_array($iterator_orders,true); 
$guests = (array)iterator_to_array($iterator_guests,true); 
$items = (array)iterator_to_array($iterator_items,true); 




pdo_insert('cnr_output_ship_to_header', (array)$orders); 
pdo_insert('cnr_output_guest_detail', (array)$guests); 
pdo_insert('cnr_output_item_detail', (array)$items); 


} 

但它的移除元素元素0和1.任何想法如何包含[0]和[1]?

+0

這個$ json ['orders'] ['cnr_output_ship_to_header']包含什麼?提供的樣本數組和迭代的數組不同。 – Angel

+0

每個['cnr_output_ship_to_header']由包含所有其他索引的索引組成。如果$ json ['orders'] ['cnr_output_ship_to_header']索引中的索引具有多個子元素,則除了$ guests或$ items之外,最後一個元素都將丟失。這與我的pdo_insert函數無法插入編號/有序數組有關。迭代通過$ iterator_guests或$ iterator_items子元素時,如何平鋪默認編號系統? $訂單的工作方式很好。 –

+0

$ json ['orders'] ['cnr_output_ship_to_header']看起來像: 'array('col1'=>'value','col2'=>'value','col3'=>'value','col4 '=>'value','col5'=>'value',['col6'=>'value','col7'=>'value',]) array('col1'=>'value', 'col2'=>'value','col3'=>'value','col4'=>'value','col5'=>'value',['col6'=>'value','col7'= >'value',]) array('col1'=>'value','col2'=>'value','col3'=>'value','col4'=>'value','col5' >'value',['col6'=>'value','col7'=>'value',])'其中放置'[]'表示空白。其他的索引看起來像在開頭的例子我的問題。 –

回答

0

我劃傷了JSON並使用了simpleXML,foreach像前面提到的那樣工作。