2016-06-29 5 views
1

У меня есть переменная $a='san-serif 'и массив Font_list[] Теперь я хочу, чтобы были отфильтрованы только массивы, чья категория «сан-сериф». Я пробовал много кодов ничего, кажется, здесь работает мой код: -Хотите фильтровать массив в соответствии со значением

public function filterFont() { 

    $a = $_POST['key']; 
    $url = "https://www.googleapis.com/webfonts/v1/webfonts?key=''"; 
    $result = json_decode(file_get_contents($url)); 
    $font_list = ""; 
    foreach ($result->items as $font) 
    { 
     $font_list[] = [ 
      'font_name' => $font->family, 
      'category' => $font->category, 
      'variants' => implode(', ', $font->variants), 
      // subsets 
      // version 
      // files 
     ]; 
    } 
    $filter = filter($font_list); 

    print_r(array_filter($font_list, $filter)); 

} 

Пожалуйста, помогите мне :-(

+0

'$ ключ = $ _POST [ 'ключ'];' и вы используете метод GET 'key' Этот пост должен быть GET или REQUEST Проверка на наличие ошибок и которые могли бы быть частью проблемы. –

+0

Опубликуйте свой массив. Является ли категория уникальной или имеет несколько значений для одной и той же категории? – user1234

+0

Плюс, как используется '$ a'? и где находится массив шрифтов? –

ответ

1

Что я понял по тому, что вы хотите что-то, как показано ниже: -

<?php 
$a='san-serif'; // category you want to search 
$font_list=Array('0'=>Array('font_name' => "sans-sherif",'category' => "san-serif"),'1'=>Array('font_name' => "times-new-roman",'category' => "san-serif"),'2'=>Array('font_name' => "sans-sherif",'category' => "roman")); 
// your original array seems something like above i mentioned 
echo "<pre/>";print_r($font_list); // print original array 
$filtered_data = array(); // create new array 
foreach($font_list as $key=>$value){ // iterate through original array 

    if($value['category'] == $a){ // if array category name is equal to serach category name 
    $filtered_data[$key] = $value; // assign that array to newly created array 
    } 
} 
echo "<pre/>";print_r($filtered_data); // print out new array 
?...

Выход: - https://eval.in/597605

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