Имеется массив вида: Код (Text): '1'=>array('13.08.2011', 'Блэкберн ', '1:2', 'Вулверхэмптон ', '01'), '2'=>array('13.08.2011', 'Куинз Парк Рейнджерс ', '0:4', 'Болтон ', '01') .... .... .... как сделать из этого такое: Код (Text): '1'=>array('13.08.2011', 'Блэкберн ', '1','2', 'Вулверхэмптон ', '01'), '2'=>array('13.08.2011', 'Куинз Парк Рейнджерс ', '0','4', 'Болтон ', '01') .... .... .... для невнимательных: смотрим на счёт.
к сожалению в регулярках ничего не могу понять... даже если я напишу сам выражение через 2 часа сам не пойму что там откуда
Код (PHP): $arr = array('13.08.2011', 'Блэкберн ', '1:2', 'Вулверхэмптон ', '01'); $tmp = array(); while($value = array_shift($arr)) { foreach(preg_split('#:#',$value) as $elm) array_push($tmp,$elm); } print_r($tmp); /* Array ( [0] => 13.08.2011 [1] => Блэкберн [2] => 1 [3] => 2 [4] => Вулверхэмптон [5] => 01 ) */
спасибо за этот код. стало немножко понятнее, но не совсем. каким образом осуществить перебор существующего массива? то есть, если написать $arr = array($mymassive); в первой строке то я увижу старый массив на выходе. Добавлено спустя 2 минуты 29 секунд: ой, накосячил. выводил просто не ту переменную, если написать $arr = $mymassive; то на выходе пустой массив. вот...
Пример был написан для реализации работы с внутренним массивом. Ваша задача осуществить перебор общего массива и применить к его аррай-элементам реализацию подобной той что я показал в качестве примера. Не старайтесь копипастить. Вчитывайтесь в примеры. Ваша задача понять суть, а не скопировать код в надежде, что все будет работать.
ну я вроде стараюсь вчитываться перед тем как скопипастить я правильно понял, что перед предыдущим кодом мы делаем foreach($mymassive as $value) ?
Код (Text): foreach ($bu as $value) { //перебираем мой исходный массив $arr = $bu; $tmp = array(); while($value = array_shift($arr)) { //выбираем значения массива foreach(preg_split('#:#',$value) as $elm) // отрезаем всё что до ":" array_push($tmp,$elm); //склеиваем "до" и "после" } } print_r($tmp);//выводим новый массив что я делаю не так?
P.S. комментарии для того чтобы понять как я это понял может быть я неправильно истолковал что-то? Добавлено спустя 1 минуту 42 секунды: наверное еще что-то неправильно потому как пустой экран наблюдаю
Если Вы хотите понимать, что делаете то тут мне уже Вам помогать нечем. Решение задачи уже на поверхности, Вам осталось лишь воспользоваться этим. Код (PHP): foreach ($bu as $key => $val) { //перебираем мой исходный массив $arr = $val; $tmp = array(); while($value = array_shift($arr)) { //выбираем значения массива foreach(preg_split('#:#',$value) as $elm) // отрезаем всё что до ":" array_push($tmp,$elm); //склеиваем "до" и "после" } $bu[$key] = $tmp; } print_r($bu);//выводим новый массив
Да, только Ваши "1:2" уже как значения массива. Код (PHP): $bu = array( array('13.08.2011', 'Блэкберн ', '1:2', 'Вулверхэмптон ', '01'), array('13.08.2011', 'Куинз Парк Рейнджерс ', '0:4', 'Болтон ', '01'), ); print_r($bu); foreach ($bu as $key => $val) { //перебираем мой исходный массив $arr = $val; $tmp = array(); while($value = array_shift($arr)) { //выбираем значения массива foreach(preg_split('#:#',$value) as $elm) // отрезаем всё что до ":" array_push($tmp,$elm); //склеиваем "до" и "после" } $bu[$key] = $tmp; } print_r($bu);//выводим новый массив Код (Text): Array ( [0] => Array ( [0] => 13.08.2011 [1] => Блэкберн [2] => 1:2 [3] => Вулверхэмптон [4] => 01 ) [1] => Array ( [0] => 13.08.2011 [1] => Куинз Парк Рейнджерс [2] => 0:4 [3] => Болтон [4] => 01 ) ) Array ( [0] => Array ( [0] => 13.08.2011 [1] => Блэкберн [2] => 1 [3] => 2 [4] => Вулверхэмптон [5] => 01 ) [1] => Array ( [0] => 13.08.2011 [1] => Куинз Парк Рейнджерс [2] => 0 [3] => 4 [4] => Болтон [5] => 01 ) )
я кажется начал понимать откуда ноги растут. в массиве не совсем так как я написал в первом посте. Всё дело в том, что у меня остались ссылки по ходу. вот пример выполнения скрипта http://robokapper.bet-school.com/parser/parser.php наверное если избавится от лишнего текста в виде ссылок всё заработает. Я прав?
Код (PHP): - foreach(preg_split('#:#',$value) as $elm) + foreach(preg_split('#:#',strip_tags($value)) as $elm)