obteniendo todos los valores en una matriz excepto el último

2 minutos de lectura

Tengo esto ahora mismo:

$s = preg_split('/\s+/', $q);
    $k = end($s);

Lo que quiero ahora es obtener todos los valores en la matriz. $k[] excepto el último, y únelos en una nueva cadena. Entonces, básicamente, si la matriz fuera:

0 => Hello
1 => World
2 => text

obtendría Hello World

Avatar de usuario de Josh
jose

Usar array_slice y implosionar:

$k = array( "Hello", "World", "text" );
$sliced = array_slice($k, 0, -1); // array ( "Hello", "World" )
$string = implode(" ", $sliced);  // "Hello World";

  • ¡Hice esto en una línea de código eficiente, debo decir! implode(“/”, array_slice(explode(“/”, $serverUrl), 0, -1));

    –Eric Herlitz

    8 oct 2011 a las 19:26

  • @EricHerlitz array_slice no es necesario explode tiene un tercer parámetro que hace que array_slice quede obsoleto. implode(' ', explode(' ', 'Hello World text', -1)); // "Hello World"

    – Mundo Marino

    20 oct 2021 a las 7:17

  • @SeaWorld Es realmente el mismo tipo de cosas. implode(" ", array_slice(array( "Hello", "World", "text" ), 0, -1)); pero claro, si tiene una cadena para comenzar, usar explotar tiene más sentido.

    –Eric Herlitz

    20 oct 2021 a las 15:04

Si puedes modificar la matriz:

array_pop($k);
$string = join(' ', $k);

array_pop() aparece y devuelve el último valor de la matriz, acortando la matriz en un elemento. Si la matriz está vacía (o no es una matriz), se devolverá NULL.

Fuente

  • me gusta array_pop mejor que array_slice porque esto último es demasiado general para este caso específico.

    – Stanislav Shabalin

    17 de agosto de 2011 a las 16:19

Usar array_slice($array) para obtener un subconjunto de cualquier matriz.

Para todo sin el último elemento creo que es

$return = array_slice($array, 0, count($array)-1, true);

Caso de prueba http://codepad.org/fyHHX5Us

Algo como esto:

<?php

    $array = array('Hello', 'World', 'text');
    $new_array = array_slice($array,0,-1);
    echo implode(' ',$new_array);

?>

Ejemplo

¿Ha sido útil esta solución?