Софтуерно Инженерство
Loading...
+ Нов въпрос
skostadinov avatar skostadinov 2 Точки

Вземане на данни от масив.

Здравейте, разработвам един плъгин за wordpress, но имам следния проблем. Искам да извадя записите от масива, но само тези в които structure = 'date'. И след това да ги завъртя в цикъл. В момента процедирам така, но не ми харесва. Искам да попитам дали има начин да се направи това?

<?php
//на мястото на plugin във функциите е името на сайта, но е променено.
$events_arr = plugin_events();
$dates_arr = plugin_events_dates($events_arr);

foreach ($dates_arr as $date){
    ?>
    <span class="tribe-events-list-separator-month"><span><?php echo $date;?></span></span>
    <?php
    foreach ($events_arr as $event){
        if($event['structure'] == $date){
            echo $event['name'] . "<br/>";
        }
    }
}
?>

 

Тагове:
0
Общи приказки 02/06/2017 14:43:13
skostadinov:
Намерено е решение на проблема.
mirchev1977 avatar mirchev1977 2 Точки

Предполагам че причината е в това, че в $event['structure'] няма стринг, който да е идентичен със стринговете в $date.

Mежду другото, въпросът тие е зададен дали $event['structure'] == 'date'. Това са две различни неща с това дали == с $date.

Та, ако искаш, пробвай така if ($event['structure'] == 'date'.

 

Иначе сега ти разбрах въпроса. Можеш да използваш нещо подобно:

 

function func($var) {

    $arr1 = ['date1', 'date2', 'date3'];

    foreach ($arr1 as $date) {
    
        if ($var['structure'] == $date) {
            return $date;
        }
     }
}

$arr2 = ['one' =>['structure' => 'one'], 'two' => ['structure' => 'date2'], 'three' => ['structure' => 'lele'], 'four' => ['structure' => 'date1']];   

$results = array_filter($arr2, 'func');

var_dump($results);

 

0
02/06/2017 15:35:20
skostadinov avatar skostadinov 2 Точки

Грешката в задаването на въпроса е моя. Проблема е, че искам да разкарам if-a и да ползвам ако има някаква вградена функция която да ми извади само резултатите от тази дата които са в масива.

0
skostadinov avatar skostadinov 2 Точки

Потърсих доста из нета, но явно няма такава функция и затова ще си направя моя. Заключвам.

0