es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

PHP – crear un nuevo array para claves específicas

Tengo el siguiente array, y solo quiero devolver las claves que sean carousel_, NO _carousel_ o la propia palabra carousel:

Array (
    [test_field] =>

    [_test_field] => field_61d60b3a91441

    [carousel_0_slide] => 42

    [_carousel_0_slide] => field_61d35ea917c1b

    [carousel_1_slide] => 42

    [_carousel_1_slide] => field_61d35ea917c1b

    [carousel_2_slide] => 42

    [_carousel_2_slide] => field_61d35ea917c1b

    [carousel_3_slide] => 42

    [_carousel_3_slide] => field_61d35ea917c1b

    [carousel] => 4

    [_carousel] => field_61d35e3617c1a
)

He intentado recorrerlo, pero no he sido capaz de dirigir específicamente el carousel_ sin incluir también el resto, o incluso correctamente.

Cualquier ayuda sería muy apreciada.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para devolver solo las claves que comienzan con carousel_, puedes utilizar un bucle foreach junto con la función strpos() para verificar si la clave empieza con la cadena deseada. Aquí tienes un ejemplo de código:

    $array = array(
        'test_field' => 'valor1',
        '_test_field' => 'valor2',
        'carousel_0_slide' => 'valor3',
        '_carousel_0_slide' => 'valor4',
        'carousel_1_slide' => 'valor5',
        '_carousel_1_slide' => 'valor6',
        'carousel_2_slide' => 'valor7',
        '_carousel_2_slide' => 'valor8',
        'carousel_3_slide' => 'valor9',
        '_carousel_3_slide' => 'valor10',
        'carousel' => 'valor11',
        '_carousel' => 'valor12'
    );
    
    foreach($array as $key => $value) {
        if(strpos($key, 'carousel_') === 0) {
            echo $key . ' => ' . $value . '<br>';
        }
    }
    

    Esto mostrará como resultado:

    carousel_0_slide => valor3
    carousel_1_slide => valor5
    carousel_2_slide => valor7
    carousel_3_slide => valor9
    

    Ten en cuenta que estamos usando === 0 en lugar de === true en la sentencia if porque strpos() puede devolver un valor de false o 0 si la cadena se encuentra al principio, por lo tanto, queremos asegurarnos de verificar una coincidencia exacta con el índice 0.

Comments are closed.