Нужна помощь с foreach

Discussion in 'PHP' started by Foster, 17 May 2010.

  1. Foster

    Foster Elder - Старейшина

    Joined:
    14 Jul 2005
    Messages:
    80
    Likes Received:
    9
    Reputations:
    2
    Есть скрипт
    PHP:
    <pre>
    <?

    $mass='16.05.2010 15:26:03 Продал ( ) за 49 для xxx [775549] ( ) yyy [39298006] (50 р) [7/7] 
    16.05.2010 15:26:30 Продал ( ) за 49 для xxx [1930955] ( ) yyy [39298004] (50 р) [7/7] 
    16.05.2010 15:28:02 Продал ( ) за 49 для xxx [1745777] ( ) yyy [39298007] (50 р) [7/7] 
    16.05.2010 16:34:15 Купил ( ) за 400 у xxx [715248] ( ) yyy [39301025] (50 р) [7/7]';

    $strArr=explode("\r\n",$mass);


    foreach ($strArr as $key => $value) {

    $elem=explode(" ",$strArr[$key]);
    $uid=preg_replace('/[]|[]/','', $elem[9]);


    $ar[$key]=$uid    ;
    asort($ar);
    print_r ($ar);


    }

    ?>
    </pre>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>

     
    <link href="e.css" rel="stylesheet" type="text/css">
    </head>
     
    <body bgcolor="C9DFF5">
    <p>Вставьте содержимое</p>
    <form action=index.php?a=in method=post>
    <textarea class= style="width: 99%;" name="parser" cols="40" rows="5"></textarea>
    <br><input type=submit class=input_b value=Анализ></form>

    Проблема в том что никак не могу вывести в один масив все четыре элемента, вместо этого получаются 4 масива с нарастающим от 1 до 4 элементов в них.

    Заранее очень благодарю!
     
  2. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    print_r ($ar); - вынеси за пределы цикла, просто код так оформлен, что тебе самому трудно увидеть, где конец цикла

    PHP:
    }
    print_r ($ar); 
     
    1 person likes this.
  3. Foster

    Foster Elder - Старейшина

    Joined:
    14 Jul 2005
    Messages:
    80
    Likes Received:
    9
    Reputations:
    2
    Спасибо огромнейшее, весь день промучался, прошуршал поисковики и книги) а тут такая бональщина) зла не хватает
     
  4. Foster

    Foster Elder - Старейшина

    Joined:
    14 Jul 2005
    Messages:
    80
    Likes Received:
    9
    Reputations:
    2
    Ещё вопрос. При выполнении сценария получаю:

    Array
    (
    [3] => 715248
    [0] => 775549
    [2] => 1745777
    [1] => 1930955
    )
    как извлечить значений ключей?
     
  5. Foster

    Foster Elder - Старейшина

    Joined:
    14 Jul 2005
    Messages:
    80
    Likes Received:
    9
    Reputations:
    2
    извлеч 3,0,2,1 в таком порядке каком они идут. Это нужно для того что бы затем отсортировать и вывести на экран $mass в порядке убывания или возрастания значения в первых встречающихся квадратных скобочках []
     
  6. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    PHP:
    <pre>
    <?
    $mass='16.05.2010 15:26:03 Продал ( ) за 49 для xxx [775549] ( ) yyy [39298006] (50 р) [7/7] 
    16.05.2010 15:26:30 Продал ( ) за 49 для xxx [1930955] ( ) yyy [39298004] (50 р) [7/7] 
    16.05.2010 15:28:02 Продал ( ) за 49 для xxx [1745777] ( ) yyy [39298007] (50 р) [7/7] 
    16.05.2010 16:34:15 Купил ( ) за 400 у xxx [715248] ( ) yyy [39301025] (50 р) [7/7]';
    $strArr=explode("\r\n",$mass);
    foreach ($strArr as $key => $value) {
       $elem=explode(" ",$strArr[$key]);
       $uid=preg_replace('/[]|[]/','', $elem[9]);
       $ar[$key]=$uid    ;
    }
    asort($ar);
    foreach ($ar as $key => $value)
      echo "Key: $key Value: $value\n";
    ?>
    </pre>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <link href="e.css" rel="stylesheet" type="text/css">
    </head>
    <body bgcolor="C9DFF5">
    <p>Вставьте содержимое</p>
    <form action=index.php?a=in method=post>
    <textarea class= style="width: 99%;" name="parser" cols="40" rows="5"></textarea>
    <br><input type=submit class=input_b value=Анализ></form>
     
  7. Foster

    Foster Elder - Старейшина

    Joined:
    14 Jul 2005
    Messages:
    80
    Likes Received:
    9
    Reputations:
    2
    Иными словами отсортировать элементы массива $strArr по возрастанию\убыванию цифр которые находятся в первых квадратных скобках каждой строки в переменной $mass
     
  8. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    sort($ar) - по возврастанию
    rsort($ar); - по убыванию
     
Loading...
Similar Threads - Нужна помощь foreach
  1. asis
    Replies:
    18
    Views:
    3,224
  2. nike495
    Replies:
    3
    Views:
    1,841
  3. Guno7
    Replies:
    9
    Views:
    1,992
  4. Sways
    Replies:
    3
    Views:
    1,716