2013-03-28 93 views
0

我得到了2個數組:結合2個陣列成一個

$ping_array = array(); 
    $ping_array[] = '400'; 
    $ping_array[] = '200'; 
    $ping_array[] = '600'; 
    $ping_array[] = '100'; 

    $timestamp_array = array(); 
    $timestamp_array[] = '2013-03-25 16:30:07'; 
    $timestamp_array[] = '2013-03-25 16:30:39'; 
    $timestamp_array[] = '2013-03-25 18:30:06'; 
    $timestamp_array[] = '2013-03-25 18:45:49'; 

我想讓這樣的事情(我不知道如何它的叫法):所以後來

$combined_array = array( 
        'time' => $timestamp_array, 
        'ping' => $ping_array 

        ); 

上我可以使用2個陣列組合是這樣的:

foreach ($combined_array as $ca=> $values) { 
echo $values['ping']; 
echo $values['time']; 

}

Thx guys這combine_array是驚人的

回答

1

PHPs array_combine:「通過使用密鑰一個數組創建一個數組,另一個是它的價值」

$combined_array = array_combine($timestamp_array, $ping_array); 

然後,只需通過類似的重複給你包括:

foreach($combined_array as $time => $ping) { 
    echo $ping; 
    echo $time; 
} 
2

這是怎麼回事?

for ($i=0; $i<count($timestamp_array); $i++) { 
    $combined_array[$i]["ping"] = $ping_array[$i]; 
    $combined_array[$i]["time"] = $timestamp_array[$i]; 
} 
4

試試這個:

$combined_array = array(); 
foreach ($ping_array as $key => $value){ 
    $combined_array[] = array(
     'time' => $timestamp_array[$key], 
     'ping' => $value 
    ); 
} 
0

如何php'array_merge_recursive'?它完全符合你的要求。它是在PHP 4及以上。

0

你可以做的是使對象的數組,像這樣:

class PingInfo { 
    public $ping; 
    public $time; 
    public function PingInfo($ping, $time) { 
     $this->ping = $ping; 
     $this->time = $time; 
    } 
} 

$pingInfos = array(); 
$pingInfos[] = new PingInfo('400', '2013-03-25 16:30:07'); 
$pingInfos[] = new PingInfo('300', '2013-03-25 16:50:13'); 

你可以從兩個陣列建立這樣的:

$pingInfos = array(); 
for ($i = 0; $i < count($ping_array); $i++) 
    $pingInfos[] = new PingInfo($ping_array[$i], $timestamp_array[$i]); 

現在你可以像這樣訪問:

foreach ($pingInfos as $pingInfo) { 
    echo $pingInfo->ping; 
    echo $pingInfo->time; 
}