J'ai une variable de tableau $arr = array('A','B','C','D');

$number = 5; (This is dynamic)

Ma nouvelle valeur de tableau devrait être

$arr = array('A','B','C','D','E','F','G','H','I');

Si

$number = 3;

La sortie doit être:

$arr = array('A','B','C','D','E','F','G');

Si la variable $number est supérieure à 22, alors affichez le tableau de A à Z et avec AA, AB, AC.. etc.

Comment faire cela en code PHP?

0
Developer 16 nov. 2017 à 09:13

4 réponses

Meilleure réponse

Que diriez-vous de celui-ci: https://3v4l.org/IGhoL

<?php

/**
 * Increments letter
 * @param int   $number
 * @param array &$arr
 */
function increment($number, &$arr) {
    $char = end($arr);
    $char++;
    for ($i = 0; $i < $number; $i++, $char++) {
        $arr[] = $char;
    }
}

$arr = range('A', 'D');
$number = 30;

increment($number, $arr);
var_dump($arr);
2
Mark 16 nov. 2017 à 06:41
$output = array();
$arr = array(A,B,C,D,E);
$data = range('F','Z');
$num = 4;

if($num < 22){
    $output = array_merge($arr,array_slice($data, 0, $num));    
}else{
     // Write ur format here..
    // $output = array('AA','AB',......,'AZ');
}

echo '<pre>';
print_r($output);
0
user2610558 16 nov. 2017 à 06:47

Voici un exemple pour ajouter des caractères de l'alphabet au tableau avec décalage. Cela fonctionne pour un caractère. Si vous souhaitez travailler pour plus de caractères, utilisez loop in loop.

for ($c = ord('A') + $offset ;$c <= ord('Z');$c++) {
  Array[] += chr($c);

}

0
SloCompTech 16 nov. 2017 à 06:39

Vous pouvez incrémenter des lettres en l'incrémentant, puis le stocker dans ce tableau lui-même. Cela imprimera également une séquence de deux lettres, c'est-à-dire AA, AB ...

$arr = array('A','B','C','D'); 
$item = end($arr) ;
$i = 0 ;
while( $i++ < $number ) {
    $arr[] = ++$item  ;
}
print_r($arr) ;
1
tan 16 nov. 2017 à 07:04
47322831