PHP Callback-функция array_walk - PullRequest
0 голосов
/ 07 апреля 2020

Здравствуйте, мне нужна помощь с этим кодом, проблема в том, что мне нужно сделать функцию обратного вызова, которая показывает только цену массива
Как это изображение >> Like this image [1] это мой код, который я много пробовал вещи, но я не мог понять, помогите мне пожалуйста


    $boeken = array(

        array("titel"=> "Stoner", "auteur" => "John Williams",
        "genre"=> "Fictie", "prijs"=> 19.99),   
        array("titel"=> "De cirkel", "auteur" => "Dave Eggers",
        "genre"=> "Fictie", "prijs"=> 22.50),   
        array("titel"=> "Rayuela", "auteur" => "Cortazar",
        "genre"=> "Fictie", "prijs"=> 25.50)
      ); 

      function prijslijst(){
          array_walk($boeken, "prijslijst");
      }




    ?>```



Ответы [ 2 ]

0 голосов
/ 07 апреля 2020

вы можете использовать массив_карт

$boeken = array(
        array("titel"=> "Stoner", "auteur" => "John Williams",
        "genre"=> "Fictie", "prijs"=> 19.99),   
        array("titel"=> "De cirkel", "auteur" => "Dave Eggers",
        "genre"=> "Fictie", "prijs"=> 22.50),   
        array("titel"=> "Rayuela", "auteur" => "Cortazar",
        "genre"=> "Fictie", "prijs"=> 25.50)
      );

        $prijs= array_map(function ($item){
            return $item['prijs'];
        },$boeken);

        var_dump($prijs);
0 голосов
/ 07 апреля 2020

Чтобы изменить значение элемента из обратного вызова, переданного в array_walk(), вам просто нужно передать значение по ссылке в обратный вызов. Любое изменение значения изменяет оригинал.

Примерно так:

array_walk($boeken, function (&$v) { $v = $v['prijs']; });

Здесь вы меняете значение каждого элемента массива с массива на значение $value['prijs'] который изменит первый элемент с ["titel"=> "Stoner", "auteur" => "John Williams", "genre"=> "Fictie", "prijs"=> 19.99] на [19.99], например.

...