Я хочу создать функцию сопоставления, которая принимает массив, строку ключа и строку значений. Эти две строки содержат PHP-код, который я хочу оценить по каждому элементу массива.Создание функции php mapper
Возвращаемые значения этих двух вызовов должны использоваться как ключи и значения в ассоциативном массиве, который будет возвращен.
E.g.
$assoc_list = my_mapper_function($list_of_people, 'id', 'full_name()');
Предполагая, что список содержит два человека, Алиса и Боб, который имеет идентификатор 4 и 5 - возвращаемое значение должно быть что-то вроде:
[
'4' => 'Alice Foo',
'5' => 'Bob Bar'
]
Любые идеи о том, как обходите это ?
Для свойств достаточно просто, потому что вы можете использовать нотацию в виде скобок, но я хочу, чтобы она работала с (цепочками) вызовами функций.
Вот код, который я ассоциировалась, который работает, к сожалению, только для свойств:
public static function assoc_mapper($array, $key, $value) {
$results = array();
foreach ($array as $element) {
$results[$element[$key]] = $element[$value];
}
return $results;
}
Как массив ввода выглядеть? – hek2mgl
Это не имеет значения. Это всего лишь массив элементов, и я хочу, чтобы строки ключей и значений оценивались по каждому элементу. –
http://www.php.net/manual/en/function.array-walk.php? –