php - remove - seleccionando una clave de matriz basada en una cadena parcial
strip_tags wordpress (5)
Me encontré con un problema similar recientemente. Esto es lo que se me ocurrió:
$value = $my_array[current(preg_grep(''/^show_me_/'', array_keys($my_array)))];
Tengo una matriz y en esa matriz tengo una clave de matriz que se parece a, show_me_160
esta clave de matriz puede cambiar un poco, por lo que a veces la página puede cargarse y la clave de matriz tal vez show_me_120
, quiero que ahora sea posible simplemente show_me_120
cadena matriz de matriz hasta el último _
para que pueda comprobar cuál es el valor después del último guión bajo?
También puede utilizar una solución basada en preg_match
:
foreach($array as $str) {
if(preg_match(''/^show_me_(/d+)$/'',$str,$m)) {
echo "Array element ",$str," matched and number = ",$m[1],"/n";
}
}
Una solución que se me ocurre:
foreach($myarray as $key=>$value){
if("show_me_" == substr($key,0,8)){
$number = substr($key,strrpos($key,''_''));
// do whatever you need to with $number...
}
}
tendría que recorrer su matriz para verificar cada clave por separado, ya que no tiene la posibilidad de consultar la matriz directamente (supongo que la matriz también contiene claves totalmente no relacionadas, pero puede omitir la parte if si no es así) el caso):
foreach($array as $k => $v)
{
if (strpos($k, ''show_me_'') !== false)
{
$number = substr($k, strrpos($k, ''_''));
}
}
Sin embargo, esto suena como una forma muy extraña de almacenar datos, y si yo fuera usted, comprobaría si no hay otra forma (más eficiente) de pasar datos en su aplicación;)
foreach($myarray as $key=>$value)
if(count(explode(''show_me_'',$event_key)) > 1){
//if array key contains show_me_
}
Más información (ejemplo):
si la clave de la matriz contiene ''show_me_''
$ example = explode (''show_me _'', ''show_me_120'');
print_r ($ ejemplo)
Array ( [0] => [1] => 120 )
print_r (cuenta ($ ejemplo))
2
print_r ($ ejemplo [1])
120