PHP是提取月份的好方法';字符串数组中的S3首字母
我有 我想知道一种有效的方法来确定数组值是否包含一个月的前3个字母。所以在这个数组中有PHP是提取月份的好方法';字符串数组中的S3首字母,php,arrays,datetime,Php,Arrays,Datetime,我有 我想知道一种有效的方法来确定数组值是否包含一个月的前3个字母。所以在这个数组中有1月、3月、7月18日、11月18日 到目前为止,我是这样做的,但想知道是否有更有效的方法来解决这个问题 $array = array( 'AUS200JAN', 'GOLD300MAR', 'AUS200_h18', 'GOLD300_g19', 'EURUSDJUL18', 'AUSEURNOV18', ); 是的,比我的好。 //Creating an Array of lett
1月、3月、7月18日、11月18日
到目前为止,我是这样做的,但想知道是否有更有效的方法来解决这个问题
$array = array(
'AUS200JAN',
'GOLD300MAR',
'AUS200_h18',
'GOLD300_g19',
'EURUSDJUL18',
'AUSEURNOV18',
);
是的,比我的好。
//Creating an Array of letters for months
$montharray = array(
'JAN','FEB','MAR','APR',''MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC'
);
foreach($montharray as $month) {
foreach($array as $val) {
if(strpos($val,$month) !== FALSE) {
var_dump('has month');
} else {
var_dump('Does not contain month');
}
}
}
<?php
$array = array(
'AUS200JAN',
'GOLD300MAR',
'AUS200_h18',
'GOLD300_g19',
'EURUSDJUL18',
'AUSEURNOV18',
);
$months = array();
for ($i = 0; $i < 12; $i++) {
$timestamp = mktime(0, 0, 0, date('f') - $i, 1);
$months[date('n', $timestamp)] = date('M', $timestamp);
}
echo '<pre>';
print_r($months);
foreach($months as $row){
if(preg_grep( "/$row/i" , $array )){
echo 'found';
echo '</br>';
}
else{
echo 'not found';
echo '</br>';
}
}