私は配列を持っており、その配列には次のような配列キーがあります。show_me_160
この配列キーは少し変更される可能性があるため、ページがロードされ、配列キーがおそらく読み込まれる可能性があります。配列キーshow_me_120
と文字列を一致させることができるようになりたいです_
最後のアンダースコアの後の値を確認できるように、最後まで?
44670 次
7 に答える
32
私が考えることができる1つの解決策:
foreach($myarray as $key=>$value){
if("show_me_" == substr($key,0,8)){
$number = substr($key,strrpos($key,'_'));
// do whatever you need to with $number...
}
}
于 2010-10-14T10:03:44.960 に答える
9
配列を直接クエリする可能性がないため、配列を反復処理して各キーを個別にチェックする必要があります(配列にはまったく無関係のキーも保持されていると想定していますが、if
そうでない場合はその部分をスキップできます場合):
foreach($array as $k => $v)
{
if (strpos($k, 'show_me_') !== false)
{
$number = substr($k, strrpos($k, '_'));
}
}
しかし、これはデータを保存する非常に奇妙な方法のように思えます。もし私があなたなら、アプリケーションでデータを渡す (より効率的な) 方法が他にないかどうかを確認します ;)
于 2010-10-14T10:08:25.927 に答える
4
preg_match
ベース ソリューションを使用することもできます。
foreach($array as $str) {
if(preg_match('/^show_me_(\d+)$/',$str,$m)) {
echo "Array element ",$str," matched and number = ",$m[1],"\n";
}
}
于 2010-10-14T10:12:25.360 に答える
-1
foreach($myarray as $key=>$value)
if(count(explode('show_me_',$event_key)) > 1){
//if array key contains show_me_
}
詳細情報 (例):
配列キーに「show_me_」が含まれている場合
$example = expand('show_me_','show_me_120');
print_r($example)
Array ( [0] => [1] => 120 )
print_r(count($example))
2
print_r($example[1])
120
于 2016-07-13T10:18:53.150 に答える