PHP中关联数组的转换
我正在循环中获取数组PHP中关联数组的转换,php,Php,我正在循环中获取数组 Array ( [name] => Birthday ) Array ( [name] => Marriage Anniversary ) 现在我想用下面的格式创建动态。我该怎么做 return [['value' => 'birthday1', 'label' => __('Birthday1')], ['value' => 'wedding_anniversary', 'label' => __('Marria
Array
(
[name] => Birthday
)
Array
(
[name] => Marriage Anniversary
)
现在我想用下面的格式创建动态。我该怎么做
return [['value' => 'birthday1', 'label' => __('Birthday1')], ['value' => 'wedding_anniversary', 'label' => __('Marriage Anniversery')]];
这将是一种可能的办法:
<?php
$input = [
['name' => 'Birthday'],
['name' => 'Marriage Anniversary']
];
$output = [];
array_walk($input, function($set) use (&$output) {
$entry = $set['name'];
$value = preg_replace('/\s+/', '_', strtolower($entry));
$label = $entry;
$output[] = [
'value' => $value,
'label' => $label
];
});
print_r($output);
您的问题有点不清楚,您建议将其中一个值(“birthday1”)拖在后面。。。如果您确实需要某种计数器来记录值的出现情况,那么下面是上述代码的修改版本:
<?php
$input = [
['name' => 'Birthday'],
['name' => 'Marriage Anniversary'],
['name' => 'Birthday']
];
$output = [];
$catalog = [];
array_walk($input, function($set) use (&$catalog, &$output) {
$entry = $set['name'];
$value = preg_replace('/\s+/', '_', strtolower($entry));
$catalog[$value] = isset($catalog[$value]) ? ++$catalog[$value] : 1;
$label = $entry;
$output[] = [
'value' => $value . $catalog[$value],
'label' => $label
];
});
print_r($output);
我们应该如何知道动态值
生日1
,结婚纪念日
?这些是否存在于循环数组中?另外,请显示您的循环代码。
<?php
$input = [
['name' => 'Birthday'],
['name' => 'Marriage Anniversary'],
['name' => 'Birthday']
];
$output = [];
$catalog = [];
array_walk($input, function($set) use (&$catalog, &$output) {
$entry = $set['name'];
$value = preg_replace('/\s+/', '_', strtolower($entry));
$catalog[$value] = isset($catalog[$value]) ? ++$catalog[$value] : 1;
$label = $entry;
$output[] = [
'value' => $value . $catalog[$value],
'label' => $label
];
});
print_r($output);
Array
(
[0] => Array
(
[value] => birthday1
[label] => Birthday
)
[1] => Array
(
[value] => marriage_anniversary1
[label] => Marriage Anniversary
)
[2] => Array
(
[value] => birthday2
[label] => Birthday
)
)