我有一个$active_asset_id = 33
,我有一个数组为
$media_asset_id = array("22", "21", "23","33", "43", "55");
$ex = array_search($active_asset_id, $media_asset_id);
它将返回匹配元素的索引。
基于索引,我需要显示前3个元素,引用该匹配的索引。
如何在php中做到这一点?有内置功能可用吗?
例如:
如果media_asset_id数组中有33个匹配项,则我需要22、21、23个ID的列表
答案 0 :(得分:2)
在这种情况下,您可以使用grid-column-end
$media_asset_id = array("22", "21", "23","33", "43", "55");
$active_asset_id = "33";
$ex = array_search($active_asset_id, $media_asset_id);
print_r(array_slice($media_asset_id, 0, $ex));
// outputs
// Array
// (
// [0] => 22
// [1] => 21
// [2] => 23
// )
答案 1 :(得分:0)
您可以使用for循环在给定索引之前显示数据,如下所示。只能显示数组中的前3个值。
<?php
$active_asset_id = 55;
$media_asset_id = array("22", "21", "23","33", "43", "55");
$ex = array_search($active_asset_id,$media_asset_id );
$counter = 1;
for($i =0; $i <=$ex; $i++){
if($counter == 4){
break;
}
echo $media_asset_id[$i];
$counter++;
}
答案 2 :(得分:0)
array_slice可以。
$active_asset_id = 33;
$media_asset_id = array("22", "21", "23","33", "43", "55");
$ex = array_search($active_asset_id,$media_asset_id );
$finalList = array_slice($media_asset_id, 0, $ex);
print_r($finalList);
答案 3 :(得分:0)
这给出了找到的针头前面的3个元素。如果前面的元素较少,它将给出索引0中的所有前面的元素。
sequelize.transaction()
或者您可以简单地做
$media_asset_id = array("22", "21", "23","33", "43", "55");
$ex = array_search('33', $media_asset_id);
if(false !== $ex)
{
$c = $ex < 3 ? $ex : 3;
var_dump(array_slice($media_asset_id, $ex-$c, $c));
}
答案 4 :(得分:0)
检查最简单的一个代码
$active_asset_id = 33;
$media_asset_id = array("22", "21", "23","33", "43", "55");
$ex = array_search("33", $media_asset_id);
$arr = array_slice($media_asset_id,0, $ex); // Additional Line
print_r($arr);
输出:
数组([0] => 22 [1] => 21 [2] => 23)