2017-05-07 109 views
0

我在從數據庫中獲取數組時遇到了一些問題。
原始數組轉換一次看起來像這樣:PHP陣列分離

Array 
(
    [0] => {"lastTimeSave":"1494000000" 
    [1] => "rankexpire":"0" 
    [2] => "evocity_rank":"g-vip" 
    [3] => "evocity_rankexpire":"0"} 
) 

我成功刪除一些無用的角色,所以我最終陣列看起來像這樣:

Array 
(
    [0] => lastTimeSave:1494000000 
    [1] => rankexpire:0 
    [2] => evocity_rank:g-vip 
    [3] => evocity_rankexpire:0 
) 

我所想要做的是前搞定一切''並將其放入陣列的密鑰中,然後刪除':',使其看起來像這樣:

Array 
(
    ['lastTimeSave'] => 1494000000 
    ['rankexpire'] => 0 
    ['evocity_rank'] => g-vip 
    ['evocity_rankexpire'] => 0 
) 

我使用分離:

$staffarray = str_replace('"', "", $staffarray); 
$staffarray = str_replace('{', "", $staffarray); 
$staffarray = str_replace('}', "", $staffarray); 

我已經嘗試過許多東西,包括:

foreach ($stafftestarray as $key => $value) { 
    $substring = substr($value, 0, strpos($value, ';')); 
    $subsubstring = str_replace($substring, "", $value); 
    $value = $subsubstring; 
} 

但似乎沒有任何改變,輸出不被改變,我會很感激的任何幫助我解決這個問題,因爲我搜索了無數個小時如何解決它無濟於事。

+0

使用爆炸在PHP – bigbounty

+4

功能它看起來像你想手動解析JSON字符串。爲什麼不使用'json_decode()'? –

+0

@AlexHowansky我完全忘了JSON,多謝了! –

回答

1

看起來像存儲在數組中的分解json對象。 (?你通過,爆炸字符串)

雖然我不知道爲什麼你的數據看起來像

這會做你想要什麼:

$data = json_decode(implode(',', $yourArray), true); 
0

不要取下"並使用爆炸來創建一個基於舊數組的新數組。

$array = array 
     (
      0 => "lastTimeSave:1494000000", 
      1 => "rankexpire:0", 
      2 => "evocity_rank:g-vip", 
      3 => "evocity_rankexpire:0" 
     ); 

$new_array = array(); 

foreach($array as $value) 
{ 
    $item = explode(":", $value); 
    $new_array[$item[0]] = $item[1]; 
} 

print_r($new_array); 

print_r($new_array)會給:

Array 
(
    [lastTimeSave] => 1494000000 
    [rankexpire] => 0 
    [evocity_rank] => g-vip 
    [evocity_rankexpire] => 0 
)