如何在PHP

时间:2015-05-16 16:35:30

标签: php arrays

我是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
   )
)

我知道,我可以将2个数组与array_merge($ data)或类似函数合并,但它不起作用。

感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

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

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

这与此相同:

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

或者这个:

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

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