需要更改数组的行数

时间:2019-03-24 17:38:03

标签: php arrays

我在page.php中包含的indice.php中有此数组,它是从数据库表“ indice”导出的数组。

<?php
$indice = array(
  array('id' => '1','def' => 'Admin'),
  array('id' => '2','def' => 'Utente'),
  array('id' => '31','def' => 'Aldwich Vertigos'),
  array('id' => '32','def' => 'Celtic Newcastle'),
  array('id' => '91','def' => 'Serie A'),
  array('id' => '92','def' => 'Serie B'),
  array('id' => '93','def' => 'Premier League'),
  array('id' => '110','def' => 'Argentina'),
  array('id' => '431','def' => 'Brisbane Road'),
  array('id' => '432','def' => 'Kingstone Park'),
  array('id' => '120','def' => 'Belgio') ); ?>

我的数组就是这样:

array(416) {
  [0]=>
  array(2) {
    ["id"]=>
    string(1) "1"
    ["def"]=>
    string(5) "Admin"
  }
  [1]=>
  array(2) {
    ["id"]=>
    string(1) "2"
    ["def"]=>
    string(6) "Utente"
  }
  [2]=>
  array(2) {
    ["id"]=>
    string(2) "31"
    ["def"]=>
    string(16) "Aldwich Vertigos"
...etc...

然后我打印此:

<?php
include("functions.php");
include("auth.php");
include("db.php");
include("indice.php");
                      $indiceok = $indice['2']['def'];
              echo $indiceok;
?>

'''

好吧……我的$ indiceok邮票印有“ Aldwych Vertigos”,但如何使用ID(2)邮票“ Utente”来获得$ indiceok?

我也非常喜欢这样一个字符串,它使用ID来标识我的数组选择,从而改变了我在这样的数组中的数组:

array(416) {
  [1]=>
  array(2) {
    ["id"]=>
    string(1) "1"
    ["def"]=>
    string(5) "Admin"
  }
  [2]=>
  array(2) {
    ["id"]=>
    string(1) "2"
    ["def"]=>
    string(6) "Utente"
  }
  **[31]**=>
  array(2) {
    ["id"]=>
    string(2) "31"
    ["def"]=>
    string(16) "Aldwich Vertigos"

非常感谢和抱歉,我相信这很容易解决,但是我不知道该怎么办

1 个答案:

答案 0 :(得分:2)

您正在寻找array_column。
默认情况下,它隔离多维数组中的列,但是如果您使用第三个参数,则可以使数组关联。

$yourarray = array_column($yourarray, Null, "id");

这仅在id唯一的情况下有效。
如果不是唯一的,则意味着您有两个31,最后一个子数组将保留,第一个子数组将被截断。

在此处查看数组的结果:https://3v4l.org/CJcJL


或者,您的数组是静态的,您只需在代码中手动分配键即可:

$indice = array(
  "1" => array('id' => '1','def' => 'Admin'),
  "2" => array('id' => '2','def' => 'Utente'),
  "31" => array('id' => '31','def' => 'Aldwich Vertigos'),
  "32" => array('id' => '32','def' => 'Celtic Newcastle'),
  "91" => array('id' => '91','def' => 'Serie A'),
  "92" => array('id' => '92','def' => 'Serie B'),
  "93" => array('id' => '93','def' => 'Premier League'),
  "110" => array('id' => '110','def' => 'Argentina'),
  "431" => array('id' => '431','def' => 'Brisbane Road'),
  "432" => array('id' => '432','def' => 'Kingstone Park'),
  "120" => array('id' => '120','def' => 'Belgio') );