Простой вопрос о цикле foreach с массивом из 2 переменных. (с кодом) - PullRequest
0 голосов
/ 01 августа 2011

Как я могу отредактировать этот цикл foreach, чтобы я мог использовать strpos для поиска, если q найдено в label?Результирующий массив будет содержать эти значения.

$q может быть anna или ann или reas john

<?php

$q = $_GET["q"];
if (!$q) return;

$data = Array(
    Array(
        'label' => 'anna c13',
        'category' => 'Products'
    ),
    Array(
        'label' => 'anders andersson',
        'category' => 'People'
    ),
    Array(
        'label' => 'andreas johnson',
        'category' => 'People'
    )
);

$result = array();
foreach ($data as $value) {
    array_push($result, array(
        "label" => $value["label"],
        "category" => $value["category"]
    ));
}


$json = json_encode($result);

echo $json;
?>

Ответы [ 3 ]

1 голос
/ 01 августа 2011

Это выведет каждый массив в $ data, где $ q находится где-то в 'label'.

   <?php

    if( !isset( $_GET["q"] )) return;
    $q = $_GET["q"];

    $data = Array(
        Array(
            'label' => 'anna c13',
            'category' => 'Products'
        ),
        Array(
            'label' => 'anders andersson',
            'category' => 'People'
        ),
        Array(
            'label' => 'andreas johnson',
            'category' => 'People'
        )
    );

    $result = array();
    foreach ($data as $value) {
        if( strpos( $value['label'], $q ) !== false ) {
            $result[] = $value;
        }
    }


    $json = json_encode($result);

    echo $json;
    ?>
0 голосов
/ 01 августа 2011
foreach ($data as $value) {
    if(strpos($value['label'], $q) !== false){
        $result[] = $value;
    }
}
0 голосов
/ 01 августа 2011

Вы не определили ключи для массива $data, поэтому он автоматически принимает вид:

 array(
    0=>array(...),
    1=>array(...),
    2=>array(...)
  )

Это означает, что вы используете strtolower для int - так, вероятно, именно поэтому оно терпит неудачу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...