Как я могу пробегать эту договоренность в PHP?

Добрый вечер приятели, правда я не очень хороший в PHP и он стоит мне я работаю пробегать эту договоренность:

[ 
  0 => [ genero => Acción y Aventura ], 
  1 => [ genero => Bélico ], 
  2 => [ genero => Ciencia Ficción ], 
  3 => [ genero => Comedia ], 
  4 => [ genero => Comedia ], 
  5 => [ genero => Documental ], 
  6 => [ genero => Drama ], 
  7 => [ genero => Historico ], 
  8 => [ genero => Infantil ], 
  9 => [ genero => Musical ], 
  10 => [ genero => Porno/Erótico ], 
  11 => [ genero => Suspenso ], 
  12 => [ genero => Terror/Horror ], 
  13 => [ genero => Western ] 
]

То, что я хочу, состоит в том, чтобы производить договоренность типа: array('Acción y Aventura', 'Bélico', etc)

Они могли бы помогать мне?

EDIT

Я добавил следующий фрагмент кода продолжая, что Вы предлагали мне, но я понял, что эта договоренность - серия объектов, Я 'произвожу':

$a = array();

foreach($options['generos'] as $index){
    $g = new Genero();
    $g = $index; 
    $gen = $g->getGenero();
    array_push($a, $gen);
}

var_dump($a);

Когда я звоню в var_dump() это Ваш вывод:

array(15) { [0]=> string(7) "Comedia" [1]=> string(14) "Porno/Erótico" [2]=> string(18) "Acción y Aventura" [3]=> string(7) "Bélico" [4]=> string(16) "Ciencia Ficción" [5]=> string(7) "Comedia" [6]=> string(10) "Documental" [7]=> string(5) "Drama" [8]=> string(9) "Historico" [9]=> string(8) "Infantil" [10]=> string(7) "Musical" [11]=> string(8) "Suspenso" [12]=> string(13) "Terror/Horror" [13]=> string(7) "Western" [14]=> string(9) "Mi Genero" }

Что я предполагаю, что то, чего я хочу добиться, но когда я распределяю это ему в следующий фрагмент кода:

-> add (я 'произвожу', ChoiceType:: class, array ('label' => 'Я Произвожу: ', 'choices' => $a, 'attr' => array ('class' => 'form-контроль')))

Только я появляются индекс или числовая серия 0 у 14, как я был бы должен функционировать правильным способом, Вами, кто думают?

EDIT

В конце концов мне удалось упорядочить мою проблему, только я добавил следующую линию:

$a = array_combine($a, $a);
1
задан 13.08.2016, 00:31
3 ответа

Идея состоит в том, чтобы пробегать договоренность (array) с foreach и хранить это в 'новом' другом, ища ключ я "произвожу" внутри каждой из стоимости начальной договоренности:

<?php

    $nuevoArreglo = [];

    foreach ($arreglo as $opcion) {

        $nuevoArreglo[] = $opcion['genero'];

    }

    print_r($nuevoArreglo);
4
ответ дан 24.11.2019, 13:39

У тебя есть array (или я упорядочиваю), который он в свою очередь содержит arrays ассоциативные (у них есть ключи alfanumГ©ricas как Г-ndices). Чтобы это обращать в нормальный array, что tendrГ-эксперт, который делать atraversarlo помещая Вашу стоимость в новый array.

Немного как это (я поместил ему кавычки для того, чтобы он был выполнимым с PHP):

<?php

$origen = [ 
  0 => [ "genero" => "Acción y Aventura" ], 
  1 => [ "genero" => "Bélico" ], 
  2 => [ "genero" => "Ciencia Ficción" ], 
  3 => [ "genero" => "Comedia" ], 
  4 => [ "genero" => "Comedia" ], 
  5 => [ "genero" => "Documental" ], 
  6 => [ "genero" => "Drama" ], 
  7 => [ "genero" => "Historico" ], 
  8 => [ "genero" => "Infantil" ], 
  9 => [ "genero" => "Musical" ], 
  10 => [ "genero" => "Porno/Erótico" ], 
  11 => [ "genero" => "Suspenso" ], 
  12 => [ "genero" => "Terror/Horror" ], 
  13 => [ "genero" => "Western" ] 
];

$destino = array();

foreach($origen as $index => $elem) {
    $destino[] = $elem["genero"];
}

print_r($destino);
3
ответ дан 24.11.2019, 13:39
  • 1
    Большое спасибо из-за твоего ответа, в настоящее время я делаю aplicaci и # 243; n с Symfony, что в действительности не, потому что s и # 243; это мне посылает index. А именно с 1 до 13 –  Sergio Trujillo 12.08.2016, 22:10

Другой более компактный способ это делать - с array_map(), что позволяет применять функцию, возвращая стоимость ключа genero каждого из элементов array.

Код

//Inicializar con los datos de la pregunta
$datosConGenero = [ 
  0 => [ "genero" => "Acción y Aventura" ], 
  1 => [ "genero" => "Bélico" ], 
  2 => [ "genero" => "Ciencia Ficción" ], 
  3 => [ "genero" => "Comedia" ], 
  4 => [ "genero" => "Comedia" ], 
  5 => [ "genero" => "Documental" ], 
  6 => [ "genero" => "Drama" ], 
  7 => [ "genero" => "Historico" ], 
  8 => [ "genero" => "Infantil" ], 
  9 => [ "genero" => "Musical" ], 
  10 => [ "genero" => "Porno/Erótico" ], 
  11 => [ "genero" => "Suspenso" ], 
  12 => [ "genero" => "Terror/Horror" ], 
  13 => [ "genero" => "Western" ] 
];

//Nos quedamos sólo con los valores
$datos = array_map(function($elem){ return $elem['genero']; }, $datosConGenero);

//Imprimir el resultado
print_r($datos);

Для каждого элемента array, функция возвращает стоимость $elem['genero'] и он это добавляет в $datos.

Результат

Array
(
    [0] => Acción y Aventura
    [1] => Bélico
    [2] => Ciencia Ficción
    [3] => Comedia
    [4] => Comedia
    [5] => Documental
    [6] => Drama
    [7] => Historico
    [8] => Infantil
    [9] => Musical
    [10] => Porno/Erótico
    [11] => Suspenso
    [12] => Terror/Horror
    [13] => Western
)

Demo в ideone.com


Ключи, которые появляются (0 до 13) это форма, в которой PHP показывает структуру array. Результат - то же самое что, если было gerenerado с
$datos = Array( 'Acción y Aventura', 'Bélico' ... );.

2
ответ дан 24.11.2019, 13:39

Теги

Похожие вопросы