med*_*edk 51 php arrays foreach
我正在开发一个使用数据库类来查询mySQL的php应用程序.
课程在这里:http://net.tutsplus.com/tutorials/php/real-world-oop-with-php-and-mysql/
我在课堂上做了一些调整以满足我的需求,但是有一个问题(也许是一个愚蠢的问题)
当使用select()时,它返回一个多维数组,就像一个包含3个cols(id,firstname,lastname)的表一样:
Array
(
[0] => Array
(
[id] => 1
[firstname] => Firstname one
[lastname] => Lastname one
)
[1] => Array
(
[id] => 2
[firstname] => Firstname two
[lastname] => Lastname two
)
[2] => Array
(
[id] => 3
[firstname] => Firstname three
[lastname] => Lastname three
)
)
现在我希望这个数组用作mysql结果(mysql_fetch_assoc).
我知道它可能与foreach()一起使用,但这是使用简单的数组.所以我认为我必须重新声明一个新的foreach()与每个foreach(),但我认为这可能会减慢或导致更高的服务器负载.
那么如何以最简单的方式将foreach()应用于这个多维数组呢?
谢谢
Bra*_*rad 111
你可以在这里使用foreach就好了.
foreach ($rows as $row) {
echo $row['id'];
echo $row['firstname'];
echo $row['lastname'];
}
Run Code Online (Sandbox Code Playgroud)
我认为您习惯于使用数字指示(例如$row[0])访问数据,但这不是必需的.我们可以使用关联数组来获取我们所追求的数据.
Kar*_*lis 15
你可以使用array_walk_recursive:
array_walk_recursive($array, function ($item, $key) {
echo "$key holds $item\n";
});
Run Code Online (Sandbox Code Playgroud)
小智 6
对于 php 中的数组,foreach 循环总是一个很好的解决方案。
在这种情况下,它可能是例如:
foreach($my_array as $number => $number_array)
{
foreach($number_array as $data = > $user_data)
{
print "Array number: $number, contains $data with $user_data. <br>";
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
这本来是布拉德回答下的评论,但我的声誉不够高。
最近我发现我也需要多维数组的键,即它不仅仅是数组的索引,在 foreach 循环中。
为了实现这一点,您可以使用与接受的答案非常相似的东西,而是按如下方式拆分键和值
foreach ($mda as $mdaKey => $mdaData) {
echo $mdaKey . ": " . $mdaData["value"];
}
Run Code Online (Sandbox Code Playgroud)
希望能帮助某人。