Vamos a hacer algunos ejemplos:

array("Paul", "", "Daniel") //false
array("Paul", "Daniel") //true
array("","") //false

Lo que es una buena manera de trabajar alrededor de esta función?

OriginalEl autor Ryan | 2011-07-08

5 Comentarios

  1. 25

    Trate de usar in_array:

    return !in_array("", array("Paul", "", "Daniel")); //returns false
    ¿Qué quiere decir?
    Echa un vistazo a la documentación de PHP, a menos que usted pase true como un tercer parámetro, in_array hará una suelta de comparación, así que voy a dar el mismo resultado con array("Paul", 0, "Daniel"), array("Paul", "", "Daniel") o array("Paul", false, "Daniel"). Así que si el op solo quiere coincidir con cadena vacía, sólo podía pasar true como tercer parámetro.
    0 es en realidad un número y así que no es una cadena vacía.
    Si usted no desea regresar false si un 0 en la matriz, y solo en una cadena vacía, sólo tiene que pasar true como tercer parámetro.

    OriginalEl autor Jack Murdoch

  2. 23

    La respuesta depende de cómo se defina «vacío»

    $contains_empty = count($array) != count(array_filter($array));

    este comprobaciones de los elementos vacíos en la sentido booleano. Para comprobar las cadenas vacías o equivalentes

    $contains_empty = count($array) != count(array_filter($array, "strlen"));

    Para comprobar las cadenas vacías sólo (nota el tercer parámetro):

    $contains_empty = in_array("", $array, true);
    Super inteligente manera de ahorrar un par de líneas de código de comprobación de la existencia de los valores en una matriz!

    OriginalEl autor user187291

  3. 4
    function has_empty(array $array)
    {
        return count($array) != count(array_diff($array, array('', null, array())));
    }

    OriginalEl autor Mohammed Abdallah

  4. 2
    $array = array("Paul", "", "Daniel") 
    if( $array  != array_filter( $array ) ) 
    return FALSE;
    Explicar un poco ¿quieres ?

    OriginalEl autor Hamid Seyyedi

  5. 1
    function testEmpty($array) {
      foreach ($array as $element) {
        if (empty($element)) //edited from: if ($element === "")
          return false;
      }
      return true;
    }

    Por favor, mira a los comentarios de abajo para más información.

    Dependiendo de cómo se defina «vacío» de los elementos, es posible que desee buscar en el if (empty($elemento)), en lugar de si ($element == «»). empty() se trata «», false, 0, null (y probablemente algunos más) como elementos vacíos.
    Yo sólo le dio una respuesta a esa pregunta precisa, pero tú eres la escritura, la respuesta es más global.
    No es mi intención corregir su sugerencia, que no era más que un adicional de solución 🙂 El vacío() la función no es siempre una buena opción, especialmente si la matriz sería de una matriz que almacena valores verdadero/falso. En ese caso, todos los ‘falsos’ valores serían filtrados.

    OriginalEl autor SteeveDroz

Dejar respuesta

Please enter your comment!
Please enter your name here