【问题标题】:php Arrays not giving the correct outputphp数组没有给出正确的输出
【发布时间】:2017-02-05 12:43:38
【问题描述】:

我创建了一个数组,但我没有得到正确的输出,我只是想知道我在下面的代码中哪里出错了

输出应显示如下名称

约翰
詹姆斯
强尼
杰尼

<?php 
$multiArray = Array( 
Array("id" => 1, "name" => "John"), 
Array("id" => 2, "name" => "James"), 
Array("id" => 3, "name" => "Jonny"), 
Array("id" => 4, "name" => "Jeni")); 

$tmp = Array(); 
foreach($multArray as &$ma) 
    $tmp[] = &$ma[name]; 

array_multisort($tmp, $multiArray); 

foreach($multiArray as &ma) 
    echo $ma["name"]."<br/>"; 
?> 

【问题讨论】:

  • foreach ($multiArray as $v) { echo $v['name']."&lt;br /&gt;"; } - 像这样?你似乎把它弄得太复杂了。
  • @qirel 感谢您的回复,但我坚持使用这个简单的数组很长时间
  • 啊?你什么意思?为什么不遵循@Qirel 的建议?
  • 就像我说的,上面评论中的那一小段代码正是你想要的——你不需要其他任何东西。看到这个live demo

标签: php arrays variables


【解决方案1】:

您想在这里实现什么目标?你想只打印数组的内容吗?

这样就够了

<?php

$multiArray = Array( 
  Array("id" => 1, "name" => "John"), 
  Array("id" => 2, "name" => "James"), 
  Array("id" => 3, "name" => "Jonny"), 
  Array("id" => 4, "name" => "Jeni")
); 

foreach($multiArray as $ma)
{
  echo $ma['name'] . "<br>";
}

?>

我还注意到,在您的代码中,有很多错字。

这是我修正所有错别字后的代码:

<?php

$multiArray = Array( 
  Array("id" => 1, "name" => "John"), 
  Array("id" => 2, "name" => "James"), 
  Array("id" => 3, "name" => "Jonny"), 
  Array("id" => 4, "name" => "Jeni")
); 

$tmp = Array(); 
foreach($multiArray as $ma) 
    $tmp[] = $ma['name']; 

array_multisort($tmp, $multiArray); 

foreach($multiArray as $ma) 
    echo $ma["name"]."<br/>"; 

?>

输出:

James
Jeni
John
Jonny

是的,输出与您想要的不同。这是因为您使用 array_multisort 对数组进行排序。阅读:http://php.net/manual/en/function.array-multisort.php

【讨论】:

    猜你喜欢
    • 2012-05-22
    • 2013-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-22
    • 1970-01-01
    • 2018-01-13
    相关资源
    最近更新 更多