¿Cómo puedo obtener los nombres que acaban por una letra dentro de un array con PHP7?

Yo parto de un array, del cual debo obtener todos los nombres de los que acaben en s y almacenarlo en otro array. Para todos los que acaben en i también. Creo que lo más efectivo es hacer un foreach, pero no tengo claro cómo usarlo. Otra condición más de mi ejercicio es que no puedo usar print_r También he pensado en utilizar funciones, pero no he encontrado ninguna sobre arrays, he pensado en cambiarlos a string pero no sé si es posible.

Código PHP:

<?php
        //Array
    $array = array(0=>"rafa",1=>"adrian",2=>"angel",3=>"enrique",4=>"dani",5=>"ivan",6=>"isa", 7=>"fran1",8=>"fran2",9=>"diego");
    $elementos = implode(",", $array);
    echo "$elementos";
    //bucle foreach
    foreach ($array as $indice => $valor) {

    }
?>
3
задан 21.11.2016, 01:21
2 ответа

Ты можешь реализовывать это соглашаясь прямо на array и подтверждая посредством метода substring последняя стоимость каждого из элементов array. Как только была сделана проверка ты будешь хранить имя, которое совпадает с твоими параметрами в новом array.

<?php

$array = array(0=>"rafa",1=>"adrian",2=>"angel",3=>"enrique",4=>"dani",5=>"ivan",6=>"isa", 7=>"fran1",8=>"fran2",9=>"diego");
$arrayResultados = array();

foreach ($array as $indice => $valor) {
    if ((substr($valor, -1) == 's') || (substr($valor, -1) == 'i')){
        $arrayResultados[] = $valor;
    }
}

Позже ты покажешь результаты твоего нового array с хранившимися именами.

foreach($arrayResultados as $nombre){
    echo $nombre;
}
2
ответ дан 24.11.2019, 12:30
  • 1
    Большое спасибо, дело в том, что мне сложно разорять прием в foreach –  ras212 21.11.2016, 01:18
  • 2
    ú ltima сомневайся, с OR в, выполняют ли два condició n tambié n он появляется? –  ras212 21.11.2016, 01:20
  • 3
    @ras212 В действительности твоим случаем не может покончить с s или с i то же имя. Поэтому OR. Что любой из двух может выполнять condició n. В случае, если оба она выполняли (вещь что serí в невозможный для того же имени) tendrí эксперт, который нужно помещать & & (AND). –  Francisco Romero 21.11.2016, 01:23
  • 4
    ok, большое спасибо –  ras212 21.11.2016, 01:25

Я оставлю тебе две формы, как было бы возможно реализовывать:

Одна с функцией strlen ():

Видеть demo 1

$array = [0=>"rafa",1=>"adrian",2=>"angel",3=>"enrique",4=>"dani",5=>"ivan",6=>"isa", 7=>"fran1",8=>"fran2",9=>"diego"];

$result = [];

foreach ($array as $key => $value) {

    if ($value[strlen($value)-1] == 's' || $value[strlen($value)-1] == 'i'){

        $result[] = $value;
    }
}

И другая более интересна и только доступна начиная с версии PHP 7.1 с прямым доступом к цепям $string[-1] или $string{-1}

+ info: PHP RFC: Generalize support of negative string offsets

Видеть demo 2

$array = [0=>"rafa",1=>"adrian",2=>"angel",3=>"enrique",4=>"dani",5=>"ivan",6=>"isa", 7=>"fran1",8=>"fran2",9=>"diego"];

$result = [];

foreach ($array as $key => $value) {

    if ($value[-1] == 's' || $value[-1] == 'i'){

        $result[] = $value;
    }
}
1
ответ дан 24.11.2019, 12:30
  • 1
    Спасибо, но на данный момент versió n 7.1 не является стабильным, не sé как обновление ее с xampp –  ras212 21.11.2016, 17:18

Теги

Похожие вопросы