我是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)或类似函数合并,但它不起作用。
感谢您的帮助。
答案 0 :(得分:4)
最简单的方法是使用现有数组作为值创建一个新的数据:
$newArray = array($array1, $array2);
这与此相同:
$newArray = array();
array_push($newArray, $array1);
array_push($newArray, $array2);
或者这个:
$newArray = array();
$newArray[] = $array1;
$newArray[] = $array2;
根据您的代码,您可能更喜欢使用最后两种方法之一将数据添加到主阵列,而不是在最后一次尝试创建整个内容。