2016-01-23 91 views
-1

我有一個數組,其中包含從Amazon API獲取的信息,並使用SimpleXML對其進行解析。這給了我一個數組,看起來像這樣:用PHP中的字符串替換字符串中的SimpleXMLObject對象

[ 
    [ 
     0 => SimpleXMLElement Object (0 => B00TU53O8Q) 
    ], [ 
     0 => SimpleXMLElement Object (0 => B00TU53O8Q), 
     1 => SimpleXMLElement Object (0 => B015K13HWQ) 
    ], [ 
     0 => SimpleXMLElement Object (0 => B00TU53O8Q) 
    ], [ 
     ... 
    ] 
] 

現在,我想這個數組轉換爲不再在他們的任何物體的SimpleXML了一個更簡單的格式。

基本上,我只是想,只是字符串數組它們代表:

[ 
    0 => B00TU53O8Q, 
    1 => B015K13HWQ, 
    2 => B00TU53O8Q, 
    1 => B00TU53O8Q 
     ... 
] 

我當時想的是陣列分成2維數組,這看起來是這樣的:

[ 
    0 => [ 
     0 => B00TU53O8Q 
     1 => B00TU53O8Q 
     2 => B015K13HWQ 
     3 => B00TU53O8Q 
     4 => B00TU53O8Q 
    ], 
    1 => [ 
     0 => B015K13HWQ 
     ... 
    ] 
    ... 
] 

我不知道該怎麼做。你能幫我麼?!

+0

輸入是我從亞馬遜API獲得的信息。我現在將更新代碼。 – McStuffins

+0

更新了代碼。謝謝 – McStuffins

+0

添加了我的輸入和所需的響應。謝謝。 – McStuffins

回答

0

馬上就蝙蝠我認爲你的陳述是錯誤的。如果你正在進行比較,應該是一個double ==。基本上你將$ asinValue設置爲'Asin Not Found',它會評估爲真。它似乎並不像你會到達你的代碼的其他部分。

+0

再次看看這個問題。我改變了它以找到更適合我需求的東西。感謝你的快速回復。 – McStuffins

1

這裏是處理您輸入的功能:

function translate($data, &$result) { 
    if (is_array($data)) { 
     foreach($data as $element) { 
      translate($element, $result); 
     } 
    } else { 
     $result[] = (string) $data; 
    } 
} 

這樣稱呼它:

// some test data: 
$data = array(
    array(
     new SimpleXMLElement("<test>B00TU53O8Q</test>") 
    ), 
    array(
     new SimpleXMLElement("<test>B00TU53O8Q</test>"), 
     new SimpleXMLElement("<test>B015K13HWQ</test>") 
    ), 
    array(
     new SimpleXMLElement("<test>B00TU53O8Q</test>") 
    ), 
    array(
     new SimpleXMLElement("<test>B00TU53O8Q</test>"), 
     new SimpleXMLElement("<test>B015K13HWQ</test>") 
    ) 
); 

$result = array(); 
translate($data, $result); 

如果你想分手的$導致5塊數組,然後按照如下步驟進行:

$chunks = array(); 
while (count($result)) { 
    $chuncks[] = array_slice($result, 0, 5); 
    $result = array_slice($result, 5); 
} 

print_r ($chuncks); 

基於測試數據的輸出給出2大塊:

Array 
(
    [0] => Array 
     (
      [0] => B00TU53O8Q 
      [1] => B00TU53O8Q 
      [2] => B015K13HWQ 
      [3] => B00TU53O8Q 
      [4] => B00TU53O8Q 
     ) 

    [1] => Array 
     (
      [0] => B015K13HWQ 
     ) 

) 
+0

我會嘗試一下。謝謝。 – McStuffins