我试图建立我的第一个多维数组-我理解使用硬编码值ok,但试图用值填充数组是让我打结。
我有2个结果集,我用来构建数组。
-
我有一个方法$hostnames返回所有的'主机名'作为一个对象
主机名= server_model美元-> get_hostnames ();
-
我有一个方法$usernames返回上面指定的'主机名'的所有'用户'。
$usernames = $userlogons_model->get_users_by_hostname($hostname->hostname);
首先,我要构建数组:
$hostnames = array(
$host => $hostname,
$users => array(
$key => $username
)
);
然后填充数组:
$hostnames = $server_model->get_hostnames_for_costs();
foreach ($hostnames as $hostname) {
$usernames = $userlogons_model->get_users_by_hostname($hostname);
echo $hostname->hostname;
foreach ($usernames as $user){
echo $user->username;
}
}
我的编辑器显示未定义的变量,我在第一个块中声明数组。我没有得到输出-肯定是语法错误,我很挣扎。如果你能帮忙,我将不胜感激!
欢呼,迈克
在PHP中,不需要"构建"一个数组然后填充它。您可以在填充数组时创建数组。
在你的第一个代码块中,它抛出错误,因为它不知道$host, $hostname, $users, $key或$username是什么,即它们是未定义的。
我不确定你想要你的最终数组是什么结构,因为我不确定$key, $host等是什么意思,有一百万种方法来创建一个数组,这取决于你需要什么,但这里有一个例子,你可以这样做:
// Get all hostnames
$hostnames = $server_model->get_hostnames_for_costs();
// Iterate through each hostname
foreach ($hostnames as $hostname)
{
// Get all users of the hostname
$usernames = $userlogons_model->get_users_by_hostname($hostname);
// Iterate through each user and append it to the user array
$user_arr = array();
foreach($usernames as $user)
{
// Append the user to the user array
$user_arr[] = $user;
}
// Add the user array to your
$my_arr[] = array (
'host' => $hostname,
'users' => $user_arr
);
}
echo var_dump($my_arr);