Heim  >  Artikel  >  php教程  >  PHP ruft eine Sammlung eines bestimmten Schlüssels in einem zweidimensionalen Array ab

PHP ruft eine Sammlung eines bestimmten Schlüssels in einem zweidimensionalen Array ab

WBOY
WBOYOriginal
2016-08-26 10:13:051819Durchsuche

Dieser Artikel dient der Codefreigabe. Ich habe einen „großen“ Code bei der Arbeit gesehen und wollte ihn teilen.

Konkret wird das folgende zweidimensionale Array aus der Bibliothek gelesen.

Codeliste:

[php]Einfach anzeigenkopieren
PHP ruft eine Sammlung eines bestimmten Schlüssels in einem zweidimensionalen Array abPHP ruft eine Sammlung eines bestimmten Schlüssels in einem zweidimensionalen Array ab
  1. $user = array(
  2. 0 => array(
  3. 'id' => 1,
  4. 'name' => 'Zhang San',
  5. 'email' => 'zhangsan@sina.com',
  6. ),
  7. 1 => array(
  8. 'id' => 2,
  9. 'name' => '李思',
  10. 'email' => 'lisi@163.com',
  11. ),
  12. 2 => array(
  13. 'id' => 5,
  14. 'name' => '王五',
  15. 'email' => '10000@qq.com',
  16. ),
  17.  … 
  18. );


Das obige Array-Format ist hauptsächlich jedem bekannt, der PHP MYSQL gespielt hat.

Also, jetzt gibt es zwei Anforderungen:

1) Holen Sie sich den Indexsatz „id“ und speichern Sie ihn als Ein-Bit-Array, d. h. erhalten Sie array(1,2,5)

Ich weiß nicht, wie meine Freunde es schreiben würden?

Wenn es so wäre, wie ich es in der Vergangenheit geschrieben habe, würde ich direkt foreach und dann array_push verwenden, um eine nach der anderen in Array-Variablen zu stopfen. Dies kann auch erreicht werden. Diese Schreibweise wirkt sich jedoch auf die Leistung aus, da die Verwendung der nativen Funktionen von PHP definitiv effizienter ist als das Schleifen.

Codeliste:

[php]einfach anzeigenkopieren
PHP ruft eine Sammlung eines bestimmten Schlüssels in einem zweidimensionalen Array abPHP ruft eine Sammlung eines bestimmten Schlüssels in einem zweidimensionalen Array ab
  1. $ids = array();
  2. $ids = array_map('array_shift', $user);


Der obige Code kann die gewünschten Ergebnisse erzielen. Informationen zur Verwendung der Funktionen finden Sie im Handbuch.

Tatsächlich gibt es hier eine andere Lösung, die die Funktion array_column verwendet, aber diese Funktion erfordert PHP-Versionsanforderungen (PHP 5 >= 5.5.0)

Codeliste:

[php]einfach anzeigenkopieren
PHP ruft eine Sammlung eines bestimmten Schlüssels in einem zweidimensionalen Array abPHP ruft eine Sammlung eines bestimmten Schlüssels in einem zweidimensionalen Array ab
  1. $ids = array();
  2. $ids = array_column($user, 'id');

In diesem Fall wird die Effizienz definitiv höher sein.


2) Holen Sie sich den Indexsatz „name“ und speichern Sie ihn als Ein-Bit-Array, d. h. get array('Zhang San','Li Si','Wang Wu')

Nach meiner vorherigen Schreibmethode ist es immer noch dasselbe foreach, und dann füllt array_push eine nach der anderen in Array-Variablen. Sehen Sie sich die effiziente Codeliste an.

Codeliste:

[php]einfach anzeigenkopieren
PHP ruft eine Sammlung eines bestimmten Schlüssels in einem zweidimensionalen Array abPHP ruft eine Sammlung eines bestimmten Schlüssels in einem zweidimensionalen Array ab
  1. $names = array();
  2. $names = array_reduce($user, create_function('$v,$w', '$v[$w["id"]]=$ w["name"];return $v;'));


Ergebnis erhalten:

[php]einfach anzeigenkopieren
PHP ruft eine Sammlung eines bestimmten Schlüssels in einem zweidimensionalen Array abPHP ruft eine Sammlung eines bestimmten Schlüssels in einem zweidimensionalen Array ab
  1. array(
  2. 1 => 'Zhang San',
  3. 2 => '李思',
  4. 5 => '王五',
  5. );

Kinderschuhe, die oft beschädigt sind, bitte so schnell wie möglich korrigieren!

Dieser Artikel stammt von CSDN, bitte geben Sie beim Nachdruck die Quelle an! http://blog.csdn.net/liruxing1715/article/details/22925575

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn