Нужно вывести данные из массива

kuzmit42

Мастер
Регистрация
9 Янв 2013
Сообщения
132
Реакции
31
Помогите пожалуйста с массивом. Данные занесенные в массив, их нужно вывести в таблицу.
Если ягода присутствует в переменной "$a" то ее помечаем как гнилую.
Все остальные ягоды из массива помечаем как свежие.
Вот мой код но не знаю как его допилить.
PHP:
    // Вывод нужных ягод. данные в переменную "a" будут браться из mysql.
    $a = "03, 07, 08";

    // Массив с значениями
    $array = array(
       01 => "малина",
       02 => "смородина",
       03 => "клубника",
       04 => "шелковица",
       05 => "виноград",
       06 => "смородина",
       07 => "крыжовник",
       08 => "слива",
       09 => "виноград",
       10 => "вишня",
       11 => "черешня",
       12 => "черника",
    );


    echo "<table>";
    // Вывод данных из масива которые обьявленны в переменной "$a" т.е. нужено вывести "клубнику, крыжовник, сливу" гнилая (в переменной "а" могут быть другие значения)
    foreach($array){
        echo "<tr><td>ИМЯ ЯГОДЫ</td><td>гнилая</td></tr>";
    }
    // Вывод данных из масива которые не обьявленны в переменной "$a" т.е. все остальные ягоды
    foreach($array){
        echo "<tr><td>ИМЯ ЯГОДЫ</td><td>свежая</td></tr>";
    }
    echo "</table>";
 
Последнее редактирование:
$a сделать массивом, все равно тянется из бд
PHP:
 $a = array(03, 07, 08);
PHP:
foreach($array){
 echo "<tr><td>ИМЯ ЯГОДЫ</td><td>гнилая</td></tr>";
 }// Вывод данных из масива которые не обьявленны в переменной "$a" т.е. все остальные ягодыforeach($array){
 echo "<tr><td>ИМЯ ЯГОДЫ</td><td>свежая</td></tr>";
 }
заменить на
PHP:
    foreach($array as $k=>$v){
if(in_array($k,$a)) {
        echo "<tr><td>".$v."</td><td>гнилая</td></tr>";
} else {
        echo "<tr><td>".$v."</td><td>свежая</td></tr>";
}
    }
 
$a сделать массивом, все равно тянется из бд
PHP:
 $a = array(03, 07, 08);
Зачастую, сделать это лучше всё таки на php, даже если оно хранится в разных row:
PHP:
$a = explode(', ', $a);
вместо прохода циклом по результату выборки и заполнения массива $a.
 
Данные в $a это просто значение ячейки в базе, это не выборка.
В итоге остановился на таком варианте.
вот полный код:
PHP:
    $a = "03, 07, 08, 14"; // Массив гнилых фруктов
    echo "<br />ID гнилых: ".$a."<br />";
    if(!is_array($a))
    {
        $a = explode(", ", $a);
    }
   
    // Массив с значениями
    $array = array(
        "01" => "01. малина",
        "02" => "02. смородина",
        "03" => "03. клубника",
        "04" => "04. шелковица",
        "05" => "05. виноград",
        "06" => "06. смородина",
        "07" => "07. крыжовник",
        "08" => "08. слива",
        "09" => "09. виноград",
        "10" => "10. вишня",
        "11" => "11. черешня",
        "12" => "12. черника",
        "13" => "13. клюква",
        "14" => "14. рябина",
        "15" => "15. абрикос",
    );

    // Создаем массивы для свежих и гнилых:
    $swez = array();
    $gnil = array();

    // В цикле заполняем массивы строками:
    foreach($array as $k=>$v){
        if( in_array($k, $a) )$swez[] = "<tr><td>".$v.": &nbsp;</td><td>гнилая</td></tr>";
        else $gnil[] = "<tr><td>".$v.": &nbsp;</td><td>свежая</td></tr>";
    }

    // Вывод результатов:
    echo "<table>".implode(PHP_EOL, $swez).implode(PHP_EOL, $gnil)."</table>";
 
Вариантов написания множество, поэтому можно постить и постить - кто как говнокодит)
 
Назад
Сверху