Php 为什么我的sql查询会删除关联数组中列的标题?

Php 为什么我的sql查询会删除关联数组中列的标题?,php,mysql,arrays,Php,Mysql,Arrays,我有两个表:users和scripts。user有user\u id列,scripts有两个:script\u id和cron\u formtat。当我查询用户时: $query = "select `user_id` from users"; $result = mysql_query($query) or die(mysql_error()); while ( $row = mysql_fetch_assoc($result)){ array_push($usersArr,$row

我有两个表:
users
scripts
。user有
user\u id
列,scripts有两个:
script\u id
cron\u formtat
。当我查询用户时:

$query = "select `user_id` from users";
$result = mysql_query($query) or die(mysql_error());

while ( $row = mysql_fetch_assoc($result)){
    array_push($usersArr,$row);
}
结果:

[{"user_id":"1"},{"user_id":"2"},{"user_id":"3"},{"user_id":"4"},{"user_id":"5"}]
{"1":{"1":"*\/3 * * * *","2":"*\/6 * * * *","3":"*\/3 * * * *","4":"* * * * *"},"2":{"1":"*\/3 * * * *","2":"*\/6 * * * *","3":"*\/3 * * * *","4":"* * * * *"},"3" ...
我根据需要获取关联数组(列标题),但为什么我的第二个查询返回包含所有值的数组,但删除列标题

$query = "select script_id,`cron_format`  from scripts";
$result = mysql_query($query) or die (mysql_error());

while($script = mysql_fetch_assoc($result)){
    foreach($usersArr as $user){
        $userScriptCronArr[$user["user_id"]][$script["script_id"]] = $script["cron_format"];
    }
}
结果:

[{"user_id":"1"},{"user_id":"2"},{"user_id":"3"},{"user_id":"4"},{"user_id":"5"}]
{"1":{"1":"*\/3 * * * *","2":"*\/6 * * * *","3":"*\/3 * * * *","4":"* * * * *"},"2":{"1":"*\/3 * * * *","2":"*\/6 * * * *","3":"*\/3 * * * *","4":"* * * * *"},"3" ...
在第二个结果中,第一个数字是user_id,对于每个用户,im分配每个现有脚本。
为什么我的第二个查询会删除用户id、脚本id和cron格式的标题?

这里没有问题。您将获得关联数组。。这是$script

while($script = mysql_fetch_assoc($result)){
    foreach($usersArr as $user){
       $userScriptCronArr[$user["user_id"]][$script["script_id"]] =    $script["cron_format"];
   }
  }
因此,您的查询没有问题$userScriptCronArr被构造为具有两个数字键的多维数组


关于角度部分:

while($script = mysql_fetch_assoc($result)){
    foreach($usersArr as $user){
       $userScriptCronArr[] = array(
           "user_id" => $user["user_id"], 
           "script_id" => $script["script_id"], 
           "cron_format" => $script["cron_format"]
       );
   }
}

这将产生一个JSON数组,可以与angular代码一起使用。但是,请阅读手册

在第一个输出中,按原样推送整个查询结果。但在第二个示例中,您并不是在推送整个结果,而是在数字数组中启动$userscriptcronar。所需的数据仍在$script中。您只需正确初始化它就可以了。

尝试
foreach($usersArr as$key=>$user){}
,然后在您喜欢的地方使用
$key
。您向我们显示的数据是哪个变量?因为如果您向我们展示了
$userScriptCronArr
,那么一切都正常。。。你有一些键,里面有你正在搜索的数据——第一个键是userID,第二个键是scriptID,值是cron_格式……但是为什么我看不到数组中每个变量前面的列的标题呢?我使用这个标题来循环抛出数组
{{x.user_id}{{x.script_id}}
,这个循环不起作用…因为您只向新数组添加(!)值$脚本是关联的,所以您可以使用键“script\u id”和“cron\u format”访问它。然后指示PHP获取$script[“cron_format”]的值,并将其放入新数组$userScriptCronArr中。因此,将值取出,并将其放入一个新数组中。你没有对钥匙做任何事情,这就是它丢失的原因。我建议阅读关于数组的PHP手册。它非常广泛。我试着像这样使用数组推送:
array推送($userScriptCronArr[$user[“user\u id”]][$script[“script\u id”]],$script[“cron\u format”])…但我在说参数1需要是数组时出错…您知道如何使用array\u push使userScriptCronArr关联吗?