Как бы я удалил любое «слово», которое содержит тире в PHP?

0

У меня есть массив, содержащий данные, поэтому он будет выглядеть так:

array(27.42, 27.71, 26.61, 204.12 1995-1-17)

И я хочу удалить все слова с тире, чтобы у меня остался массив, который выглядит так:

array(27.42, 27.71, 26.61, 204.12)

Здесь изображен точный массив.

http://i.imgur.com/wDh7BIt.png

Я использую регулярное выражение? Каков наилучший метод. Я попытался использовать функцию if, чтобы заменить все слова, содержащие "-" на "", но это не сработало.

Любая помощь высоко ценится!

Теги:
preg-replace

2 ответа

0
Лучший ответ

Моя попытка:

<?php
$value = array(27.42, 27.71, 26.61, '204.12 1995-1-17');

$pattern = '/\s*\b\w*\-\w*\b/';

$result = preg_replace($pattern, '', $value);

var_dump($result);
  • 0
    Похоже, твое сработало! Спасибо!
0
foreach ($array as $index=>$value)
{
 if (strstr($value,'-')) 
 {
  $ex=explode(" ",$value,2);
  $array[$index]=@$ex[0];
 }
}

Просто пройдите через массив и проверьте, содержит ли значение черту... Обратите внимание, что foreach ассоциативен, поэтому вы получите индекс значения внутри массива, поэтому вы можете его отключить.

  • 0
    Я пробовал, но похоже, что он удалил весь элемент?
  • 0
    да, сначала это было сделано, теперь я обновил код, чтобы сократить содержимое по пробелам и вернуть первую часть.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню