0

我有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 伙计们,这个 combine_array 太棒了

4

5 回答 5

4

试试这个:

$combined_array = array();
foreach ($ping_array as $key => $value){
    $combined_array[] = array(
        'time' => $timestamp_array[$key],
        'ping' => $value
    );
}
于 2013-03-28T21:08:45.847 回答
2

那这个呢?

for ($i=0; $i<count($timestamp_array); $i++) {
     $combined_array[$i]["ping"] = $ping_array[$i];
     $combined_array[$i]["time"] = $timestamp_array[$i];
}
于 2013-03-28T21:07:01.117 回答
1

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

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

然后只需重复类似于您包含的内容:

foreach($combined_array as $time => $ping) {
    echo $ping;
    echo $time;
}
于 2013-03-28T21:08:47.187 回答
0

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

于 2013-03-28T21:11:57.050 回答
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;
}
于 2013-03-28T21:15:17.177 回答