Это было бы проще
$name = [
'A'=>'name1',
'B'=>'name2',
'C'=>'name3',
'D'=>'name4',
'E'=>'name5',
'F'=>'name6'
];
$family = [
'A'=>'family1',
'B'=>'family2',
'C'=>'family3',
'D'=>'family4',
'E'=>'family5',
'F'=>'family6'
];
foreach( $name as $k => $info ){
$t = new stdClass();
$t->name = $info;
$t->family = $family[$k];
$myArray[$k] = $t;
}
РЕЗУЛЬТАТ
Array
(
[A] => stdClass Object
(
[name] => name1
[family] => family1
)
[B] => stdClass Object
(
[name] => name2
[family] => family2
)
[C] => stdClass Object
(
[name] => name3
[family] => family3
)
[D] => stdClass Object
(
[name] => name4
[family] => family4
)
[E] => stdClass Object
(
[name] => name5
[family] => family5
)
[F] => stdClass Object
(
[name] => name6
[family] => family6
)
)
Тогда, если вы выполните json_encode (), вы получите то, что хотите
echo json_encode($myArray);
{
"A": {
"name": "name1",
"family": "family1"
},
"B": {
"name": "name2",
"family": "family2"
},
"C": {
"name": "name3",
"family": "family3"
},
"D": {
"name": "name4",
"family": "family4"
},
"E": {
"name": "name5",
"family": "family5"
},
"F": {
"name": "name6",
"family": "family6"
}
}
ОБНОВЛЕНИЕ: Почему у вас были проблемы с вашим кодом
Эта строка
$myArray = array_fill_keys( $key, new stdClass() );
заполняет массив ссылкой на один объект.
Поэтому, когда вы загружаете данные в объект массива, вы заполняете один объект некоторыми данными. Этот объект ссылается (на него указывают) во всех ваших массивах. Таким образом, вы видите только данные, загруженные на последней итерации цикла, во всех вхождениях массива.
Простой тест, например
$name = [
'A'=>'name1',
'B'=>'name2',
'C'=>'name3',
'D'=>'name4',
'E'=>'name5',
'F'=>'name6'
];
$family = [
'A'=>'family1',
'B'=>'family2',
'C'=>'family3',
'D'=>'family4',
'E'=>'family5',
'F'=>'family6'
];
$key = array_keys( $name );
$myArray = array_fill_keys( $key, new stdClass() );
// looks like it should fill only the object in the first 'A' occurance
$myArray['A']->one = 1;
print_r($myArray);
РЕЗУЛЬТАТ
Array
(
[A] => stdClass Object ( [one] => 1 )
[B] => stdClass Object ( [one] => 1 )
[C] => stdClass Object ( [one] => 1 )
[D] => stdClass Object ( [one] => 1 )
[E] => stdClass Object ( [one] => 1 )
[F] => stdClass Object ( [one] => 1 )
)