0

У меня есть страница только для хранения ДАННЫХ, что мне нужно с помощью расширенного пользовательского поля в WordPress, и я назвал его page_categories-animation.phpКак получить массив, когда матч значение, а затем использовать его

В моих index.php, я написал эту

// get post id from page feature animation categories 
$anim_id = url_to_postid('feature-animation-categories'); 
// get all the data from it 
$variable = get_field('animCategory', $anim_id); 

print_r($variable); 

выход $ переменной, как это (на самом деле его имеют 20 массивов, но я использую 2 массивы так легко понять)

Array 
(
    [0] => Array 
     (
      [category_name] => Coffee Machines 
      [categoryId] => 12 
      [animateTitle] => Better ways to cleaner dishes. 
      [animateIcon] => 
      [animateLink] => http://google.com 
      [animateBG] => 
      [fram1] => Array 
       (
        [ID] => 315 
        [id] => 315 
        [title] => coffee-frame1 
        [filename] => coffee-frame1.png 
       ) 

      [fram2] => Array 
       (
        [ID] => 316 
        [id] => 316 
        [title] => coffee-frame2 
        [filename] => coffee-frame2.png 
       ) 
     ) 

    [1] => Array 
     (
      [category_name] => Cooking & Baking 
      [categoryId] => 13 
      [animateTitle] => Better ways to cleaner dishes. 
      [animateIcon] => 
      [animateLink] => http://google.com 
      [animateBG] => 
      [fram1] => Array 
       (
        [ID] => 318 
        [id] => 318 
        [title] => cookie-frame1 
        [filename] => cookie-frame1.png 
       ) 

      [fram2] => Array 
       (
        [ID] => 319 
        [id] => 319 
        [title] => cookie-frame2 
        [filename] => cookie-frame2.png 
       ) 
     ) 
) 

Мой вопрос: Как я могу использовать массив, соответствующие значению, в этом случае просто предположим, что мы уже имеем CategoryId 13 и я хочу, чтобы захватить массив, которые имеют CategoryId 13 и использовать его.

+0

Что вы пытаетесь сделать с результатом? почему бы просто не перебрать массив $ variable и не фильтровать результат? – silver

+0

@silver Я просто хочу данные и применяю его в своем div, ничего необычного или сложного, я думаю. im не достаточно хорошо, используя php, только эта идея всплывает в моей голове T_T, я думаю, что это легче для меня. – caberg

ответ

2

Это будет работать:

$use_array = []; 

foreach($variable as $v) // loop through your array of data 
{ 
    if($v['categoryId'] == 13) // look for categoryId = 13 
    { 
     $use_array = $v; // save this array for later use 
     break; // quit looping to save processing time and resources 
    } 
} 

print_r($use_array); // this will be your array with categoryId = 13 
+0

плюс один для сверхбыстрых ответов, его работы сейчас^_^ – caberg

+0

@caberg nice !!! – MonkeyZeus

1

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

http://ideone.com/cingTP

Ваш массив

$variable = [ 
    "0" => [ 
     "category_name" => 'Coffee Machines', 
     "categoryId" => 12, 
     "animateTitle" => 'Better ways to cleaner dishes.', 
     "animateIcon" => '', 
     "animateLink" => 'http://google.com', 
     "animateBG" => "", 
     "fram1" => [ 
      "ID" => 315, 
      "id" => 315, 
      "title" => 'coffee-frame1', 
      "filename" => 'coffee-frame1.png', 
     ], 
     "fram2" => [ 
      "ID" => 316, 
      "id" => 316, 
      "title" => 'coffee-frame2', 
      "filename" => 'coffee-frame2.png', 
     ] 
    ], 
    "1" => [ 
     "category_name" => 'Cooking & Baking', 
     "categoryId" => 13, 
     "animateTitle" => 'Better ways to cleaner dishes.', 
     "animateIcon" => '', 
     "animateLink" => 'http://google.com', 
     "animateBG" => '', 
     "fram1" => [ 
      "ID" => 318, 
      "id" => 318, 
      "title" => 'cookie-frame1', 
      "filename" => 'cookie-frame1.png', 
     ], 
     "fram2" => [ 
      "ID" => 319, 
      "id" => 319, 
      "title" => 'cookie-frame2', 
      "filename" => 'cookie-frame2.png', 
     ] 
    ] 
]; 

Solution

$result = array_filter($variable, function($item) { 
    return $item['categoryId'] == 13; 
}); 

print_r($result); 
+0

К сожалению, это не работает для меня, это возвращает пустой массив – caberg

+0

Я преобразовал ваш выходной массив в массив PHP, а затем предоставил этот ответ. :) Обновлен мой ответ, так что посмотрите –

+0

скопируйте свой php-массив и свой код, его еще пусто – caberg

Смежные вопросы