将2个阵列合二为一

时间:2013-03-28 21:04:42

标签: php arrays

我有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'];

}

大家好,这个combine_array很棒

5 个答案:

答案 0 :(得分:4)

试试这个:

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

答案 1 :(得分:2)

这个怎么样?

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

答案 2 :(得分:1)

PHPs array_combine:“通过使用一个数组作为键来创建一个数组,为另一个数组创建一个数组”

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

然后重复通过类似于你所包含的内容:

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

答案 3 :(得分:0)

php'array_merge_recursive'怎么样?它完全符合您的要求。它在php 4及更高版本中找到。

答案 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;
}