¿Es posible en PHP hacer algo como esto? ¿Cómo harías para escribir una función? Aquí hay un ejemplo. El orden es lo más importante.Ordenar una matriz por claves basadas en otra matriz?
$customer['address'] = '123 fake st';
$customer['name'] = 'Tim';
$customer['dob'] = '12/08/1986';
$customer['dontSortMe'] = 'this value doesnt need to be sorted';
Y me gustaría hacer algo como
$properOrderedArray = sortArrayByArray($customer, array('name', 'dob', 'address'));
Porque al final utilizo un foreach() y que no están en el orden correcto (porque añado los valores a una cadena que debe estar en el orden correcto y no sé de antemano todas las claves/valores de la matriz).
He revisado las funciones de matriz internas de PHP, pero parece que solo se puede ordenar alfabéticamente o numéricamente.
Funciona muy bien si tiene claves de cadena, pero no para la numérica. PHP Docs: "Si las matrices de entrada tienen las mismas claves de cadena, el valor posterior de esa tecla sobrescribirá la anterior. Sin embargo, si las matrices contienen claves numéricas, el valor posterior no sobrescribirá el valor original, pero se adjuntará ". – bolbol
Bien, pero ¿y si las claves no existen en los valores? Necesito esto, pero solo si existe alguna de las claves ... Probablemente necesito un foreach entonces ... –
para mi caso es array_replace en lugar de array_merge. array_merge combina ambos valores en lugar de reemplazar la segunda matriz en las claves ordenadas. – neofreko