繁体   English   中英

如何在while循环中做一个多维数组?

[英]How to do a multidimensional array within a while loop?

我在 php 中遇到了这个简单的问题:

$words = array();
while ($allrow = mysqli_fetch_array($all))
{       
    $words = "".utf8_encode($allrow["eng"])."" => "".$allrow["id"]."";                  
}

foreach ($words[] as $key => $word) {

我想要一个包含一些单词及其 id 的数组。 在 foreach 循环中,我需要能够知道每个单词有哪个 id。

您的数组构建语法已关闭,请尝试以下操作:

// array key is the id, swap if needed, but I assume the ids are unique
$words[$allrow["id"]] = utf8_encode($allrow["eng"]);

每次您说$words = $anything时,您都在覆盖最后一次迭代。

这应该会产生一个解析错误:

."" => "".

不知道你的测试是如何滑倒的。 也不需要空的""字符串。

在您的 foreach 循环中,将每个条目添加到数组中。

$words[utf8_encode($allrow["eng"])] = $allrow["id"];

如果您实际上希望 id 作为键,这更有可能,您可以反转分配:

$words[$allrow["id"]] = utf8_encode($allrow["eng"]);

同样,您不应该使用$words[]进行迭代。 那没有意义。 利用
foreach($words as $key => $value)

由于使用[]分配数组值和迭代 arrays 是基本概念,因此在尝试使用它们之前,您应该研究PHP arrays

$words[$allrow["id"]] = utf8_encode($allrow["eng"]);

然后在 foreach 循环中使用foreach ($words as $key => $word) {

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM