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