Quiero extraer los datos de un array (matriz original con la clave y el valor). Después de extraer la matriz, quiero dos nuevos grupos, el primero con sólo las llaves, la segunda con solo los valores, y ambos sin índices (véase el ejemplo de código).

//original array 
$array = array(
    "name1"=>500
   ,"name2"=>400
   ,"name3"=>300
   ,"name4"=>200
   ,"name5"=>100
);

//after extraction
$array1 = array('name1','name2','name3','name4','name5');
$array2 = array(500,400,300,200,100);

//not like this
//$array1 = array(0=>'name1',1=>'name2',2=>'name3',3=>'name4',4=>'name5);
//$array2 = array(0=>500,1=>400,2=?300,3=>200,4=>100);
  • Cada elemento en un array de PHP debe tener un índice. Su «no como este» matrices son exactamente las mismas que las matrices que usted desea.
InformationsquelleAutor Liuqing Hu | 2013-04-08

2 Comentarios

  1. 14
    $array1 = array_keys($array);
    $array2 = array_values($array);

    bien, se puede leer aquí.

    En ciencias de la computación, una matriz de estructura de datos o simplemente una matriz es una
    estructura de datos que consiste en una colección de elementos (valores o
    las variables), cada uno identificado por al menos una matriz de índice o clave
    . Un
    la matriz se almacena de manera que la posición de cada elemento puede ser calculada
    a partir de su índice de tupla por una fórmula matemática.

    • nota que esto es para la gente deling con las solicitudes HTTP y JSON valores. I éxito en obtener una matriz sin que los índices mediante la creación de una matriz y la adición de los elementos deseados, uno por uno. El print_r función todavía muestra los índices, pero cuando regresé al crear una matriz en una respuesta HTTP, mi frontend tiene sólo valores (ex. ['a', 'b', 'c']). Live demo aquí. El problema que tenía era que array_filter fue devolución de los índices (en JSON algo como {'0': 'a', '1': 'b', '2': 'c'}.
    • que lo print_r función Si dada una matriz, los valores se presentan en un formato que muestra las claves y los elementos. tal vez su frontend ‘automáticamente’, la reconocen como una matriz debido a que el formato json.
    • Aunque sé que print_r hace eso, yo tenía el mismo problema que el OP y lo resuelto por la inserción de los valores en la matriz, uno por uno (en bucle). JSON estaba mostrando {0: 'a', 1: 'b'} antes de la corrección, y después de utilizar el bucle se ['a','b'].
  2. 6
    $keys = array_keys($array);
    $values = array_values($array);

    Nota, sin embargo, que array(0=>'item') y array('item') son exactamente idéntico tan lejos como PHP es que se trate. No hay tal cosa como un array de php elemento sin necesidad de un índice. Si no se proporciona un índice de PHP se silenciosamente agregar un índice numérico.

Dejar respuesta

Please enter your comment!
Please enter your name here