• Как сделать чтобы dropdown был поверх остальных стилей а не внутри?

    deniamnet
    @deniamnet
    New Yorker, web developer
    Проставьте z-index (достаточно высокий) на то, что выпадает. И всё будет ок.
    Ответ написан
    1 комментарий
  • Как правильно перекодировать массив php в json?

    Akdmeh
    @Akdmeh
    PHP, Yii2, Music
    //старый массив
    $array=['key'=>'test1', 'value'=>'value1', 'key2'=>'test2', 'value2'=>'value2'];
    //нужно переформатировать массив, это будет новый
    $new_arr=[];
    for($i=1; true; $i++){
    //Это чтобы первое значение было key, а не key1
    $suffix=$i==1 ? '' : $i;
    if(array_key_exists('key'.$suffix, $array) && array_key_exists('value'.$suffix, $array)){
    //добавляем новое значение
        $new_arr[]=['key'=>$array['key'.$suffix], 'value'=>$array['value'.$suffix]];
    } //если закончились массивы. Это в случае, если нумерация непрерывная, иначе стоит изменить именование полей в форме
    else {break;}
    }
    
    echo json_encode($new_arr);


    Это плохой неоптимизированный код, но я объяснил принцип. Но лучше посоветую именовать все поля в форме как key[] и value[].
    Тогда их можно будет вытащить с помощью
    foreach($_POST['key'] as $k=>$v) и переформатировать будет по-проще, типа так:
    foreach($_POST['key'] as $k=>$v) {
    $new_arr[]=['key'=>$v, 'value'=>$_POST['value'][$k]];
    }


    В данном коде вообще не учтена валидация полей на пустоту, xss-атаки и все прочее, имейте в виду.
    Ответ написан
    Комментировать