我有一个这样的数组:
[Unicode.Scalar: State]
我需要把它变成这个:
Array (
[Example] => Array (
[0] => 1,2,3,4
[1] => 2,4,5,6,7
)
)
所以只需一个密钥,并删除重复项。
编辑 - 这是我正在使用的实际代码。
我在WordPress中有一个设置列表,用户可以在其中选择他们的Google字体,以及使用该字体的变体。
我有一系列设置,我正在循环:
Array (
[Example] => Array (
[0] => 1,2,3,4,5,6,7
)
)
现在使用这些值,我可以构建我的URL以从Google请求字体:
$options = array(
'first_option',
'second_option',
);
$font_families = array();
$font_variants = array();
foreach ( $options as $key ) {
$value = get_theme_mod( $key );
if ( ! in_array( $value, $font_families ) ) {
$font_families[$value] = $value;
}
if ( ! isset( $font_variants[$value] ) ) {
$font_variants[$value] = array();
}
$font_variants[$value] = get_theme_mod( $key . '_variant' );
}
print_r( $font_families );
// Array ( [Open+Sans] => Open+Sans [Amiri] => Amiri )
print_r( $font_variants );
// Array ( [Open+Sans] => Array ( [0] => 300,regular,italic,700 [1] => 300italic,regular,italic,600,600italic,700,700italic,800,800italic ) [Amiri] => Array ( [0] => regular,italic,700,700italic ) )
// The above is where the issue comes in, I need to merge [0] and [1] inside the same array.
问题出在Open Sans调用中 - 当我们只需要调用它们一次时,我们会调用两次变体。
答案 0 :(得分:2)
您需要MSDN和array_merge
# pull images
docker pull wurstmeister/zookeeper
docker pull wurstmeister/kafka
# run kafka & zookepper
docker run -d --name zookeeper -p 2181 -t wurstmeister/zookeeper
docker run --name kafka -e HOST_IP=localhost -e KAFKA_ADVERTISED_PORT=9092 -e KAFKA_BROKER_ID=1 -e ZK=zk -p 9092:9092 --link zookeeper:zk -t wurstmeister/kafka
# enter container
docker exec -it ${CONTAINER ID} /bin/bash
cd opt/kafka_2.11-0.10.1.1/
# make a tpoic
bin/kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic mykafka
# start a producer in terminal-1
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic mykafka
# start another terminal-2 and start a consumer
bin/kafka-console-consumer.sh --zookeeper zookeeper:2181 --topic mykafka --from-beginning
答案 1 :(得分:0)
您正在寻找array_merge(),这会删除重复的密钥。
由于您的示例似乎使用字符串来存储您的数字,您还可以在逗号上查找 explode() :
<?php
$string1 = "1, 2, 3, 4";
$string2 = "2, 4, 5, 6, 7";
$array1 = explode(",", $string1);
$array2 = explode(",", $string2);
print_r(array_merge($array1, $array2));
/* Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 2 [5] => 4 [6] => 5 [7] => 6 [8] => 7 ) */
?>
希望这有帮助! :)
答案 2 :(得分:0)
SORT_REGULAR
方式很适合合并和删除重复项。您也可以尝试这种方式,请参阅此处的演示https://eval.in/840895
$array =[
'Example' => [
[1,2,3,4],
[2,4,5,6,7]
]
];
$result['Example'][0] = implode(',',array_unique(array_merge(... $array['Example'])));
print '<pre>';
print_r($result );
print '</pre>';