Вставить значение динамически из одного массива в другой в php - PullRequest
0 голосов
/ 11 ноября 2018

Я видел некоторые ответы на stackoverflow, как это сделать, но он не удовлетворяет тому, что мне нужно. Итак, у меня есть мастер-массив в php со всеми пользовательскими значениями, я дал пользователю выбрать опцию, какое значение он хочет выбрать, и затем я выведу эти значения из мастер-массива. Я хочу массив, который будет принимать эти значения из основного массива, который будет соответствовать идентификатору, который я использовал для выбора вариантов. например, если id = 25, он должен принимать значения из строки мастер-массива, имеющего значение id = 25.

Примечание: я принял значения id в качестве массива. Как и в [16,18,23], это может быть что угодно между 15 и 26.

array(

    array('id' => '15', 'title' => 'product5', 'brand_name' => 'brand5', 'price' => '1233'),
    array('id' => '16', 'title' => 'product4', 'brand_name' => 'brand4', 'price' => '1234'),
    array('id' => '17','title' => 'produc23', 'brand_name' => 'brand3', 'price' => '2222'),
    array('id' => '18','title' => 'produc2', 'brand_name' => 'brand2', 'price' => '455'),
    array('id' => '19', 'title' => "vivek's 1st product", 'brand_name' => 'vivek', 'price' => '1000'),
    array('id' => '20', 'title' => 'Slik Shirt', 'brand_name' => 'Ramraj', 'price' => '599'),
    array('id' => '21', 'title' => 'Bhagalpuri Kota Silk Saree', 'brand_name' => 'Vimalnath Synthetics', 'price' => '1299'),
    array('id' => '22', 'title' => 'fsdf', 'brand_name' => 'fsdf', 'price' => '200',),
    array('id' => '23', 'title' => 'wdw', 'brand_name' => 'qwqewq', 'price' => '2000'),
    array('id' => '24', 'title' => 'productawesome', 'brand_name' => 'awesome', 'price' => '1000'),
    array('id' => '25',  'title' => 'redmi 5A', 'brand_name' => 'redmi', 'price' => '6000'),
    array('id' => '26', 'title' => 'naruto_stickers', 'brand_name' => 'anime', 'price' => '200')
    )

Если кто-то найдет ответ, помогите.

Ответы [ 2 ]

0 голосов
/ 11 ноября 2018

вы можете попробовать array_filter () и in_array (), как показано ниже

$master= array(

    array('id' => '15', 'title' => 'product5', 'brand_name' => 'brand5', 'price' => '1233'),
    array('id' => '16', 'title' => 'product4', 'brand_name' => 'brand4', 'price' => '1234'),
    array('id' => '17','title' => 'produc23', 'brand_name' => 'brand3', 'price' => '2222'),
    array('id' => '18','title' => 'produc2', 'brand_name' => 'brand2', 'price' => '455'),
    array('id' => '19', 'title' => "vivek's 1st product", 'brand_name' => 'vivek', 'price' => '1000'),
    array('id' => '20', 'title' => 'Slik Shirt', 'brand_name' => 'Ramraj', 'price' => '599'),
    array('id' => '21', 'title' => 'Bhagalpuri Kota Silk Saree', 'brand_name' => 'Vimalnath Synthetics', 'price' => '1299'),
    array('id' => '22', 'title' => 'fsdf', 'brand_name' => 'fsdf', 'price' => '200',),
    array('id' => '23', 'title' => 'wdw', 'brand_name' => 'qwqewq', 'price' => '2000'),
    array('id' => '24', 'title' => 'productawesome', 'brand_name' => 'awesome', 'price' => '1000'),
    array('id' => '25',  'title' => 'redmi 5A', 'brand_name' => 'redmi', 'price' => '6000'),
    array('id' => '26', 'title' => 'naruto_stickers', 'brand_name' => 'anime', 'price' => '200')
    );

    $selected  = array(15,18);
    print_r(array_filter($master,function($arr) use ($selected){
      return in_array($arr['id'],$selected);
    }));
0 голосов
/ 11 ноября 2018

Предполагая, что ваш идентификатор $ id. И основной массив присваивается $ master. Вы можете просмотреть и проверить идентификатор.

$row = -1;
For($x =0; $x < count($master); $x++){
 If($master[$x]['id'] === $id){
   $row = $master[$x];
   break;
 }
}
//if row == -1 no match
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...