簡體   English   中英

將元素和鍵添加到數組php

[英]Add element and key to array php

我正在嘗試將元素添加到數組,但是得到一個奇怪的輸出。 代碼如下:

$getalltokens = $db->query("SELECT * FROM Tables WHERE available = '$comp'");
    while ($row = $getalltokens->fetch(PDO::FETCH_ASSOC))
    {
        $fid = $row['FID'];
        $tok = $row['token'];
        $sql = $db->query("SELECT Firstname,Lastname FROM Users WHERE Token = '$tok'");
        $rez = $sql->fetch(PDO::FETCH_ASSOC);
        $names[] = $rez;
        $fidzy = array(
            'FID' => $fid
        );
        array_push($names, $fidzy);
    }
    $getalltokens = $db->query("SELECT FID FROM Tables WHERE available = '$comp'");
    $tokenz = $getalltokens->fetchAll(PDO::FETCH_ASSOC);
    echo json_encode($names);

我得到的輸出是:

[{"Firstname":"Test","Lastname":"Test"},{"FID":"5"},
{"Firstname":"Test2","Lastname":"Test2"},{"FID":"4"}]

雖然我需要的是FID放在$names數組中,所以它更像是:

[{"Firstname":"Test","Lastname":"Test","FID":"5"}]
$rez['FID'] = $fid; /* Added */
$names[] = $rez;
/* $fidzy and array_push removed */

您可以使用代替array_push()這樣的方法

$arrayname[indexname] = $value;

如果您使用array_push()

<?php
$array[] = $var;
?>
 Note: If you use `array_push()` to add one element to the array it's 

最好使用$array[] =因為那樣就沒有調用函數的開銷。

 Note: `array_push()` will raise a warning if the first argument is not an array. This differs from the `$var[]` behavior where a new array 

被建造。

參考陣列推送

解決當前特定問題的方法是在單個查詢中選擇所有必需的數據,而無需在任何數組中添加元素。 這是通過以下方式完成的:

$sql = $db->query("SELECT
Users.Firstname,Users.Lastname,Tables.FID
FROM Users,Tables 
WHERE Users.Token = Tables.token");
$rez = $sql->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($rez);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM