How can I force PHP to use strings for array keys?

PHP

In PHP, array keys are automatically converted to integers if they contain numeric values. To force PHP to use strings for array keys, you can use several approaches that ensure all keys remain as strings regardless of their content.

Understanding PHP Array Key Behavior

By default, PHP automatically converts numeric string keys to integers ?

<?php
$array = array("1" => "first", "2" => "second", "name" => "John");
var_dump(array_keys($array));
?>
array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  string(4) "name"
}

Method 1: Using array_combine()

The array_combine() function creates an array using one array for keys and another for values, preserving string keys ?

<?php
$values = array("Tutorialspoint", "Simply Easy Learning");
$string_keys = array("first", "second");
$new_array = array_combine($string_keys, $values);

print_r($new_array);
var_dump(array_keys($new_array));
?>
Array
(
    [first] => Tutorialspoint
    [second] => Simply Easy Learning
)
array(2) {
  [0]=>
  string(5) "first"
  [1]=>
  string(6) "second"
}

Method 2: Using JSON Functions

Converting to JSON and back forces all keys to become strings ?

<?php
$array = array("1" => "Tutorialspoint", "2" => "Simply Easy Learning");
$json = json_encode($array);
$new_array = json_decode($json, true);

echo "Original keys: ";
var_dump(array_keys($array));
echo "After JSON conversion: ";
var_dump(array_keys($new_array));
?>
Original keys: array(2) {
  [0]=>
  int(1)
  [1]=>
  int(2)
}
After JSON conversion: array(2) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
}

Method 3: Manual String Casting

Explicitly cast keys to strings when building the array ?

<?php
$data = [1 => "first", 2 => "second"];
$string_array = [];

foreach($data as $key => $value) {
    $string_array[(string)$key] = $value;
}

var_dump(array_keys($string_array));
?>
array(2) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
}

Conclusion

Use array_combine() for new arrays, JSON conversion for existing arrays, or manual casting for more control. The JSON method is most convenient for converting existing numerickeyed arrays to string keys.

Updated on: 2026-03-15T10:41:43+05:30

352 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements