我有一个函数,它从文本区域获取一个条目,将其拆分为行,并从每行中生成一个数据数组。然而,这是一个数字数组,数据需要有与之相关的特定密钥
有没有一个功能可以将这些键插入我想要的位置,以避免手动对每个键进行编码?
这是我的代码,它生成一个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
)
阵列组合对有帮助
例如
<?php
$a = array('green', 'red', 'yellow');
$b = array('avocado', 'apple', 'banana');
$c = array_combine($a, $b);
print_r($c);
?>
编辑
试试你的前臂。我正在写一个基本的结构。
foreach ($Offer as $key => $value) {
$offerArray[$key] = $value[4];
}
类似此格式的输出
key => value
key => value
,这将对您有所帮助
$key=array("email","first_name","surname","custom");
$parts = explode(',', $line);
$parts = array_slice($parts, 0, 4);
$invites[] = array_combine($key,$parts);
这里的答案是使用array_combine($keys, $values);
请注意,如果$keys
和$values
阵列中的元素数量不同,则函数将失败。