【问题标题】:How to loop through this array of arrays?如何循环遍历这个数组数组?
【发布时间】:2022-11-18 04:44:47
【问题描述】:

我正在从我的数据库中获取数据,这就是我得到的:

Array
(
    [0] => Array
        (
            [username] => example@gmail.com
            [processedDate] => 2022-11-09 10:22:00
            [processed] => 1
        )

    [1] => Array
        (
            [username] => example@gmail.com
            [processedDate] => 0000-00-00 00:00:00
            [processed] => 0
        )

    [2] => Array
        (
            [username] => example@gmail.com
            [processedDate] => 2022-10-26 11:07:00
            [processed] => 1
        )

    [3] => Array
        (
            [username] => example@gmail.com
            [processedDate] => 2022-11-14 17:21:00
            [processed] => 1
        )

    [4] => Array
        (
            [username] => example@gmail.com
            [processedDate] => 2022-09-19 10:50:00
            [processed] => 1
        )
)

很酷,但是我需要访问 username 属性,这与我使用对象 ($myArray->username) 时类似。

我试过这个但它不起作用,因为它不是一个对象,它是一个数组。

foreach($arr as $var) {
    foreach($var as $el) {
        echo $el->username;
    }
}

我也试过这个:

foreach($arr as $var) {
    echo $var['username'];
}

我的目标是访问 username、processedDate 和 processes 属性以使用它们并评估条件。

我想得到这个:

Array
(
    [0] => Array
        (
            [username] => example@gmail.com
        )

    [1] => Array
        (
            [username] => example@gmail.com
        )

    [2] => Array
        (
            [username] => example@gmail.com
        )

    [3] => Array
        (
            [username] => example@gmail.com
        )

    [4] => Array
        (
            [username] => example@gmail.com
        )
)

这是我的完整代码:

$sql = "SELECT username, processedDate, processed FROM users_test";
$stmt = $conn->prepare($sql);
$stmt->execute();
$result = $stmt->get_result();

while ($row = $result->fetch_assoc()){
     $arr[] = $row;
}

echo "<pre>";
print_r($arr); // The result of this is the first code I posted here.

【问题讨论】:

    标签: php arrays loops


    【解决方案1】:

    当您将这两种想法结合起来时,您将有更好的机会。

    foreach($arr as $var) {
        foreach($var as $el) {
            echo $el['username'];
        }
    }
    

    【讨论】:

      【解决方案2】:

      你可以尝试使用数组映射函数

      $arr = array_map(function($data){ 
        $username = $data['username']; 
        return $data;
      }, $arr);
      

      【讨论】:

        猜你喜欢
        • 2017-09-12
        • 2010-11-01
        • 2017-03-19
        • 2017-06-07
        • 2019-07-10
        • 2010-10-24
        • 2020-07-28
        • 1970-01-01
        相关资源
        最近更新 更多