配列キーのプレフィックスを削除しようとしましたが、すべての試みが失敗しています。私が達成したいことは次のとおりです。
持つ:Array ( [attr_Size] => 3 [attr_Colour] => 7 )
取得するため:Array ( [Size] => 3 [Colour] => 7 )
あなたの助けは大歓迎です...
私があなたの質問を理解していれば、あなたがimplode()
望むものを得るために使う必要はありません。
define(PREFIX, 'attr_');
$array = array('attr_Size' => 3, 'attr_Colour' => 7);
$prefixLength = strlen(PREFIX);
foreach($array as $key => $value)
{
if (substr($key, 0, $prefixLength) === PREFIX)
{
$newKey = substr($key, $prefixLength);
$array[$newKey] = $value;
unset($array[$key]);
}
}
print_r($array); // shows: Array ( [Size] => 3 [Colour] => 7 )
Array ( [Size] => 3 [Colour] => 7 )
取得方法の1 つ:Having: Array ( [attr_Size] => 3 [attr_Colour] => 7 )
$new_arr = array();
foreach($Your_arr as $key => $value) {
list($dummy, $newkey) = explode('_', $key);
$new_arr[$newkey] = $value;
}
キーに複数のアンダースコアがあると思われる場合は、foreach 内の最初の行を次のように置き換えます。 list($dummy, $newkey) = explode('attr_', $key);