Php 是否根据值的部分保留数组中的键/值?
我有一个数组,其中每个键值包含图片的元信息,用逗号分隔。 对于元信息A、B、C:Php 是否根据值的部分保留数组中的键/值?,php,arrays,filtering,Php,Arrays,Filtering,我有一个数组,其中每个键值包含图片的元信息,用逗号分隔。 对于元信息A、B、C: A表示图片的ID B图片的顺序 C颜色 我已经在问如何找到C的唯一值,但现在我想过滤掉并返回一个仅具有特定颜色的数组-C值,用于向访问者表示仅具有颜色3的f.e图像 我想通过在阵列中循环来实现这样的结果 <div class="smallgal" id="color-1"> <img src="657.jpg"> <img src="658.jpg">
- A表示图片的ID
- B图片的顺序
- C颜色
我已经在问如何找到C的唯一值,但现在我想过滤掉并返回一个仅具有特定颜色的数组-C值,用于向访问者表示仅具有颜色3的f.e图像 我想通过在阵列中循环来实现这样的结果
<div class="smallgal" id="color-1">
<img src="657.jpg">
<img src="658.jpg">
<img src="659.jpg">
</div>
<div class="smallgal" id="color-3">
<img src="869.jpg">
<img src="872.jpg">
<img src="959.jpg">
</div>
<div class="smallgal" id="color-2">
<img src="875.jpg">
</div>
这将修改您的阵列
foreach($elements as &$element){
$colors = explode(',', $element);
$element = $colors[count($colors)-1]; // it could be explicitly 2 perhaps
}
这不会:
$c = array();
foreach($elements as $key=>$element){
$colors = explode(',', $element);
$c[$key] = $colors[count($colors)-1]; // the same, consider using 2
}
以下是一种方法:
$result = array_filter($array, function($val){
return array_pop(explode(',',$val)) == 3;
});
您可以这样尝试:
for ($i = 1; $i <= 3; $i++) { // Change that 3 if there are more colors
echo '<div class="smallgal" id="color-'.$i.'">';
foreach($picture_data as $value){
$data = explode(',', $value);
if ($data[2] == $i) {
echo '<img src="'.$data[0].'.jpg">';
}
}
echo '</div>';
}
for($i=1;$i Check and elclanrs)-编辑我的帖子,向您展示我希望从这篇文章中获得的结果。
for ($i = 1; $i <= 3; $i++) { // Change that 3 if there are more colors
echo '<div class="smallgal" id="color-'.$i.'">';
foreach($picture_data as $value){
$data = explode(',', $value);
if ($data[2] == $i) {
echo '<img src="'.$data[0].'.jpg">';
}
}
echo '</div>';
}