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
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 necesarioexplode
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.
-
me gusta
array_pop
mejor quearray_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);
?>