mpdc
mpdc

Reputation: 3570

Set array keys to incrementing letters

I have a PHP array, which looks like follows:

array(8) {
  [0]=>
  string(3) "639"
  [1]=>
  string(2) "33"
  [2]=>
  string(2) "68"
  [3]=>
  string(3) "196"
  [4]=>
  string(3) "275"
  [5]=>
  string(3) "309"
  [6]=>
  string(3) "331"
  [7]=>
  string(3) "378"
}

I would like to change all the keys to these values to incrementing letters (a, b, c, etc.) - how would I do this?

I realise I can increment letters like so:

$x = "a";
$x++;
echo $x;

"b"

But how can I perform this within a loop?

The desired result would be something like this:

"a" => "639"
"b" => "33"
"c" => "68"
etc.

Upvotes: 1

Views: 1392

Answers (3)

Ali
Ali

Reputation: 1438

Following code will surely help you:

$result = [];
array_walk($data,function($v,$k)use (&$result){
   $result[chr(65 + $k)] =  $v;
});

print_r($result);

Demo

Upvotes: 2

PostCrafter
PostCrafter

Reputation: 655

You have provided the answer pretty much yourself already

$array = array('639', '33', '68', '196', '275', '309', '331', '378');

$index = 'a';

$newArray = array();

foreach ($array as $value) {
    $newArray[$index++] = $value;
}

Upvotes: 3

Pooya
Pooya

Reputation: 6136

I think the following can help

$newArray = array();

$index = "a";
foreach($oldArray as $value)
{
   $newArray[$index] = $value;
   $index++;
}

Upvotes: 5

Related Questions