За последние 24 часа нас посетили 55842 программиста и 1798 роботов. Сейчас ищут 911 программистов ...

Преобразование ассоциативных массивов

Тема в разделе "PHP для новичков", создана пользователем Luter1984, 27 дек 2010.

  1. Luter1984

    Luter1984 Активный пользователь

    С нами с:
    9 ноя 2010
    Сообщения:
    66
    Симпатии:
    0
    Решил использовать функции implode() для преобразования массива в строки.
    Но столкнулся с проблемой: Массивы мои - ассоциативные. Поэтому использовать для прохода по массиву можно только foreach.
    Но в моем случае, в одном из массивов нужно заменить все элементы, которые равны нулю на слово "Ожидается", а затем использовать функцию implode(); для преобразования этого массива в строку.
    Как сделать такую замену в foreach.
    Заранее спасибо!
     
  2. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    встречал что-то типа такого, но не проверял:

    foreach($array as $key=>&$value){
    if($value == 0) $value = 'Ожидается';
    }

    лучше уже изменять значения прям перед выводом, а не внутри массива
     
  3. <?=RPG?>

    <?=RPG?> Активный пользователь

    С нами с:
    19 ноя 2010
    Сообщения:
    451
    Симпатии:
    0
    Код (Text):
    1. <?php
    2. $v = 'string';
    3. echo $v == 0; //1
    Бугага
     
  4. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Код (Text):
    1. join('', array_keys($array));
     
  5. Johnatan

    Johnatan Активный пользователь

    С нами с:
    6 мар 2008
    Сообщения:
    508
    Симпатии:
    0
    Адрес:
    Испания
    Сейчас меня закидают тухлыми яйцами, так как вопрос к автору не по теме, но всё-таки. Автор, почему не использовать serialize?

    По теме:

    PHP:
    1.  
    2. array_walk($array, create_function('&$v,$k', '$v = ($v == 0) ? "Ожидается" : $v;'));
    3.  
    Вот как-то так.

    P.S. Эээээ, а чего-то PHP хайлайтер мой код бракует? О_о Ай-яй-яй.
    P.P.S А, судя по всему хайлайтер совсем коньки отбросил. Nevermind тогда.
     
  6. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    Johnatan
    пхп хайлайтер не функциклирует если в сообщении есть русские буквы.
    не обязательно в коде, а вообще в сообщении
     
  7. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    Возможно умные разовьют мою мысль и применять цикл там где возможно. Если сам мысля моя верна.

    Код (Text):
    1. <?php
    2.  
    3. ini_set('display_errors',1);
    4. error_reporting(E_ALL);
    5.  
    6.  
    7.  
    8. $lastname['andrei']='dibrov';
    9. $lastname['petya']='kozlov';
    10. $lastname['kolya']=0;
    11. $lastname['nina']='fedukova';
    12. $lastname['sergey']='miskin';
    13. $lastname['dima']=0;
    14.  
    15. $new = array_values($lastname);
    16.  
    17. $keys=array_keys($new,"0") ;
    18.  
    19.  
    20. $d=$keys[0];
    21. $dd=$keys[1];
    22.  
    23.  
    24. $new[$d]='ожидается';
    25. $new[$dd]='ожидается';
    26.  
    27.  
    28. foreach ($new as $value)
    29. {
    30. echo "$value ";
    31. }
    32. ?>
     
  8. Johnatan

    Johnatan Активный пользователь

    С нами с:
    6 мар 2008
    Сообщения:
    508
    Симпатии:
    0
    Адрес:
    Испания
    Это не мысль. Это бред.