如何在PHP中合并两个输出数组


How to merge 2 outputs array in PHP

我是PHP编程的初学者,我想在这里问一下我的问题。

之前,我得到PHP脚本:https://github.com/VosCast/SHOUTcast-PHP-Stats

这是代码,我如何得到数组:

require_once 'vc_shoutcast.class.php'; // get stats
require_once 'vc_shoutcast_json_relay.class.php'; // produce json
$lists = array(
    array(
        'host'  => 'host.net',
        'port'  => '9898'
    ),
    array(
        'host'  => 'host.net', 
        'port' => '8787'
    )
);
$i = 1;
foreach ($lists as $list => $radio) {
    $vc_shoutcast = new vc_shoutcast( $radio['host'], $radio['port'], false );
    $vc_shoutcast_json_relay = new vc_shoutcast_json_relay( $vc_shoutcast, 1, $cache = './stats_' . $i . '.json' );
    $vc_shoutcast_json_relay->run( 'both' );
$i++;
}

这是vc_shoutcast_json_relay.class.php ($vc_shoutcast_json_relay->run('both');)代码:

foreach ($vars as $value) {
    $data[$value] = $this->vc_shoutcast->$value;
}
var_dump( $data );
从上面的代码中,我将得到两个输出数组,如下所示:
Array(
     [currentlisteners] => 2,
     [maxlisteners] => 3,
     [songtitle] => Some song title 2
)
Array(
    [currentlisteners] => 12,
    [maxlisteners] => 13,
    [songtitle] => Some song title 2
)

如何将两个数组合并成一个数组:

Array(
   [0] => (
        [currentlisteners] => 2,
        [maxlisteners] => 3,
        [songtitle] => Some song title 2
   ),
   [1] => (
       [currentlisteners] => 12,
       [maxlisteners] => 13,
       [songtitle] => Some song title 2
   )
)

我知道,我可以用array_merge($data)或类似的函数合并两个数组,但它不工作。

谢谢你的帮助。

最简单的方法是创建一个新的数组,用现有的数组作为值:

$newArray = array($array1, $array2);

$newArray = array();
array_push($newArray, $array1);
array_push($newArray, $array2);

或:

$newArray = array();
$newArray[] = $array1;
$newArray[] = $array2;

根据您的代码,您可能更喜欢使用最后两个方法中的一个将数据添加到主数组中,而不是尝试在最后一次创建整个内容。