Как получить только год из смешанной строки?(РНР) - PullRequest
0 голосов
/ 19 мая 2018

У меня есть такая строка:

$str[] = "November 28th, 2014 | 0 - 9, 2014, Karthik Nallamuthu";<br/>
$str[] = "October 6th, 2015 | 0 - 9, 2015, D. Imman";<br/>
$str[] = "November 22nd, 2017 | 0 - 9, 2017";<br/>
$str[] = "December 18th, 2009 | 0 - 9";<br/>
$str[] = "December 18th, 2009 | 0 - 9";<br/>
$str[] = "October 30th, 2015 | 0 - 9, 2015, Sean Roldan";<br/>
$str[] = "December 18th, 2009 | 0 - 9";<br/>
$str[] = "November 25th, 2011 | 0 - 9, 2011 |";<br/>

Я хочу получить из этого массива только значение года - строка, пожалуйста, помогите мне.

Ответы [ 2 ]

0 голосов
/ 19 мая 2018

Вы также можете использовать этот способ, Если формат массива одинаков и находится между двумя разделителями или строками ,

 foreach ($str as $key => $row) {
    echo "year of '$row' is <b>".extract_unit($row,",","|") . " <b></br>";
 }
 function extract_unit($string, $start, $end)
 {
  $pos = stripos($string, $start);

  $str = substr($string, $pos);

  $str_two = substr($str, strlen($start));

  $second_pos = stripos($str_two, $end);

  $str_three = substr($str_two, 0, $second_pos);

  $unit = trim($str_three); // remove whitespaces

  return $unit;
 }
0 голосов
/ 19 мая 2018

Использование DateTime::createFromFormat - это один из способов сделать это, предполагая, что все ваши данные имеют одинаковый формат:

foreach ($str as $s) {
    $date = DateTime::createFromFormat('F jS, Y+', $s);
    echo "year of '$s' is ". (int)$date->format('Y') . "\n";
}

Вывод для ваших данных:

year of 'November 28th, 2014 | 0 - 9, 2014, Karthik Nallamuthu' is 2014
year of 'October 6th, 2015 | 0 - 9, 2015, D. Imman' is 2015
year of 'November 22nd, 2017 | 0 - 9, 2017' is 2017
year of 'December 18th, 2009 | 0 - 9' is 2009
year of 'December 18th, 2009 | 0 - 9' is 2009
year of 'October 30th, 2015 | 0 - 9, 2015, Sean Roldan' is 2015
year of 'December 18th, 2009 | 0 - 9' is 2009
year of 'November 25th, 2011 | 0 - 9, 2011 |' is 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...