【问题标题】:array index changing into string [name] not number数组索引变为字符串 [name] 而不是数字
【发布时间】:2017-02-19 03:49:04
【问题描述】:

我有一个表单(display.php),它将从用户那里获得多个选定的选项。然后这个选定的选项将被格式化为另一个页面(page.php)。当我尝试显示那些多个选择的选项时会出现问题。数组索引正在变为字符串 [name]!

数组([0] => 3204120006 [1] => 3204120011 [2] => 3204120010 [3] => 3204120009) 数组 ( [name] => BIRU ) 数组 ( [name] => BOJONG ) 数组 ( [name] => MAJAKERTA ) 数组 ( [name] => MAJALAYA )

这里是上面显示的代码。

<?php

if (isset($_POST["desas"])) {
$ddes=$_POST["desas"];
print_r ($ddes);
foreach ( $ddes as $iddesa ) {
$namadesa=mysql_query("SELECT name FROM villages WHERE id='$iddesa' ");
if ($namadesa) {
    $datadesa = mysql_fetch_assoc($namadesa);
    print_r($datadesa);
}
} else 
  $datadesa="";
}

?>

我的问题是如何在这些数组上将 ([name]=>BIRU),([name]=>BOJONG) 更改为索引 ([0]=>BIRU),([1]=>BOJONG) 等?或者mysql fetch中缺少什么?

【问题讨论】:

  • 对于初学者来说,停止使用 mysql_* 函数怎么样?它们已被弃用多年,并在一年前从 PHP 7 中删除。
  • @Sherif 然后我会添加 OP 应该提供有关此app.php 的更多详细信息并正确缩进他的代码
  • 警告:如果您只是学习 PHP,请不要使用mysql_query 接口。它是如此可怕和危险,以至于它在 PHP 7 中被删除。像 PDO is not hard to learn 这样的替代品和像 PHP The Right Way 这样的指南解释了最佳实践。您的用户数据不是properly escaped,有SQL injection bugs,可以被利用。

标签: php mysql arrays


【解决方案1】:

您可以使用array_values。参考:https://secure.php.net/manual/en/function.array-values.php

$datadesa = array_values(array_values);

【讨论】:

  • 如果您只是要丢弃阵列并重建它,为什么还要使用mysql_fetch_assoc?使用mysql_fetch_array($result, MYSQL_NUM) 会更有意义,但话又说回来,我不知道为什么我们甚至使用 PHP 不再支持的扩展。
  • 谢谢@Sherif .. 你有什么想法可以解决我的问题吗?村、区、县、省的数据存储在数据库中..
猜你喜欢
  • 2014-12-02
  • 1970-01-01
  • 1970-01-01
  • 2015-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-06
  • 1970-01-01
相关资源
最近更新 更多