3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = json_decode('{"client":"4","gateWay":"1","store":"store.shop.com", "valid":"true","po":34535,"additionalPO":23423,"customerNotes":"", "orderItems":[{"item":"123","quantity":10,"supplierLotNo":"", "customsValue":"","customsDescription":"","hsCode":""}, {"item":"345","quantity":50}], "shippingInfos":[{"address":{"city":"Chennai", "country":"India","postalCode":"86715","state":"TN", "streetAddress1":"6971 North Street","streetAddress2":null}, "contact":{"company":null,"email":"info@store.com","firstName":"test", "lastName":"test","phoneNo":null},"ServiceId":"3","thirdPartyAccountNo":"", "signatureConfirmation":false,"saturdayDelivery":false}]}',true); function getUniqueObjectKeyPaths($array, $parentKey = "") { $keys = []; foreach ($array as $parentKey => $v) { if (is_array($v)) { $nestedKeys = getUniqueObjectKeyPaths($v, $parentKey); foreach($nestedKeys as $index => $key) { if (!is_numeric($parentKey) && !is_numeric($key)) { $nestedKeys[$index] = $parentKey . "->" . $key; } } array_push($keys, ...$nestedKeys); } elseif (!is_numeric($parentKey)) { $keys[] = $parentKey; } } return $keys; } var_export(getUniqueObjectKeyPaths($array));
Output for 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
array ( 0 => 'client', 1 => 'gateWay', 2 => 'store', 3 => 'valid', 4 => 'po', 5 => 'additionalPO', 6 => 'customerNotes', 7 => 'orderItems->item', 8 => 'orderItems->quantity', 9 => 'orderItems->supplierLotNo', 10 => 'orderItems->customsValue', 11 => 'orderItems->customsDescription', 12 => 'orderItems->hsCode', 13 => 'orderItems->item', 14 => 'orderItems->quantity', 15 => 'shippingInfos->address->city', 16 => 'shippingInfos->address->country', 17 => 'shippingInfos->address->postalCode', 18 => 'shippingInfos->address->state', 19 => 'shippingInfos->address->streetAddress1', 20 => 'shippingInfos->address->streetAddress2', 21 => 'shippingInfos->contact->company', 22 => 'shippingInfos->contact->email', 23 => 'shippingInfos->contact->firstName', 24 => 'shippingInfos->contact->lastName', 25 => 'shippingInfos->contact->phoneNo', 26 => 'shippingInfos->ServiceId', 27 => 'shippingInfos->thirdPartyAccountNo', 28 => 'shippingInfos->signatureConfirmation', 29 => 'shippingInfos->saturdayDelivery', )
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 array ( 0 => 'client', 1 => 'gateWay', 2 => 'store', 3 => 'valid', 4 => 'po', 5 => 'additionalPO', 6 => 'customerNotes', 7 => 'orderItems->item', 8 => 'orderItems->quantity', 9 => 'orderItems->supplierLotNo', 10 => 'orderItems->customsValue', 11 => 'orderItems->customsDescription', 12 => 'orderItems->hsCode', 13 => 'orderItems->item', 14 => 'orderItems->quantity', 15 => 'shippingInfos->address->city', 16 => 'shippingInfos->address->country', 17 => 'shippingInfos->address->postalCode', 18 => 'shippingInfos->address->state', 19 => 'shippingInfos->address->streetAddress1', 20 => 'shippingInfos->address->streetAddress2', 21 => 'shippingInfos->contact->company', 22 => 'shippingInfos->contact->email', 23 => 'shippingInfos->contact->firstName', 24 => 'shippingInfos->contact->lastName', 25 => 'shippingInfos->contact->phoneNo', 26 => 'shippingInfos->ServiceId', 27 => 'shippingInfos->thirdPartyAccountNo', 28 => 'shippingInfos->signatureConfirmation', 29 => 'shippingInfos->saturdayDelivery', )

preferences:
155.67 ms | 404 KiB | 153 Q