我有一个函数从textarea获取一个条目,将它分成行并从每一行创建一个数据数组。但是,这是一个数值数组,数据需要具有与之关联的特定键。
是否有可以将这些键插入我想要的位置的功能,以避免手动编码每个键?
这是我的代码,它生成一个4元素数组 -
function do_split_invitations(){
/** Split the lines into individual elements in an array */
$lines = explode("\n", $_POST['invitations']);
$invites = array(); // Initiate array to avoid errors
if(!empty($lines)) : foreach($lines as $line) :
$parts = explode(',', $line); // Split in to parts
$parts = array_slice($parts, 0, 4); // Take only the first 4 parts (the rest are not needed
$parts = array_map(array($this, '_clean_callback'), $parts); // Clean the parts
$invites[] = $parts;
endforeach;
endif;
}
当前输出(一行) -
Array
(
[0] => test@adomain.com
[1] => John
[2] => Smith
[3] => Mr Smith
)
所需输出(一行) -
Array
(
['email'] => test@adomain.com
['first_name'] => John
['surname'] => Smith
['custom'] => Mr Smith
)
答案 0 :(得分:2)
数组合并对你有帮助
例如。
<?php
$a = array('green', 'red', 'yellow');
$b = array('avocado', 'apple', 'banana');
$c = array_combine($a, $b);
print_r($c);
?>
修改强>
试试你的foreach。我正在写一个基本结构。
foreach ($Offer as $key => $value) {
$offerArray[$key] = $value[4];
}
以此格式输出
key => value
key => value
答案 1 :(得分:2)
这对你有帮助,
$key=array("email","first_name","surname","custom");
$parts = explode(',', $line);
$parts = array_slice($parts, 0, 4);
$invites[] = array_combine($key,$parts);
答案 2 :(得分:1)
这里的答案是使用array_combine($keys, $values);
请注意,如果$keys
和$values
数组中的元素数量不同,该函数将失败。