访问阵列顶部和底部元素

时间:2018-01-12 05:06:32

标签: php arrays

这里再次使用数组。

我有一个非常大的数组,格式为:

pros
 {a,b,c....zx,zy,zz}
cons
 {a,b,c...zx,zy,zz}

我能够读取数组中的所有元素,但我只需要列出子数组的前10个" pros"和最后10个子阵列" cons"在反向模式。

这就是我要展示的内容:

Pros:
a,b,c,d,e,f,g,h,i,j
Cons
zz,zy,zx,zw,zv,zu,zt,zs,zr,zq

我可以提取信息的任何想法吗?

修改

$variable = $myarray;

$compras = array_slice($variable['bids'],0,10,true);
$ventas = array_slice($variable['asks'],-10);

echo "<table border =1 style='font-size: 80%;border-collapse:collapse;'>";
foreach($compras as $key => $value) 
    {
    echo "<tr><td>".number_format($value[0],6)."</td><td>".number_format($value[1],4)."</td></tr>";
    }
echo "</table>";

这正如我所料。

4 个答案:

答案 0 :(得分:0)

获得第10名

$pros= array_slice($pros_array,0, 10);

获得最后10

$cons = array_reverse(array_slice($cons_array,-10, 10));

答案 1 :(得分:0)

$pros = array_slice($prosArray, 0, 10, true);

$cons = array_reverse(array_slice($consArray, -10));

答案 2 :(得分:0)

array_slice是一个非常快速的函数,用于获取数组的一部分。参数包括数组,起始偏移量和要从数组中切片的元素数。这就是我们在第一次通话中使用0,10的原因。负偏移量从数组末尾的元素数开始,因此我们使用-10来获取cons数组的末尾。这里不需要元素的数量,它只会到数组的末尾。我们将cons数组反转为10个元素,而不是浪费大量时间首先翻转大数组。

http://php.net/manual/en/function.array-slice.php

http://php.net/manual/en/function.array-reverse.php

$pros = array_slice($pros, 0, 10);

$cons = array_reverse(array_slice($cons,-10) );

答案 3 :(得分:0)

如果您的多维数组与您描述的一样大,那么您不希望在迭代修改后的结果之前通过操纵这些数据结构来阻止您的进程。只是要巧妙地了解如何访问数据 - 无需进行任何修改。

代码:(Demo

// generate fake array data:
for($s='a'; $s!=='aaa'; ++$s){
    $array['bids'][]=$s;
}
$array['asks']=$array['bids'];
//var_export($array);

// access only what you desire (no array modifications)
$max_asks=sizeof($array['asks'])-1;
echo "<table border=1 style='font-size:80%;border-collapse:collapse;'>";
for($i=0; $i<10; ++$i){
    echo "\n\t<tr>";
        echo "\n\t\t<td>{$array['bids'][$i]}</td>";
        echo "\n\t\t<td>{$array['asks'][$max_asks-$i]}</td>";
    echo "\n\t</tr>";
}
echo "\n</table>";

输出:

<table border=1 style='font-size:80%;border-collapse:collapse;'>
    <tr>
        <td>a</td>
        <td>zz</td>
    </tr>
    <tr>
        <td>b</td>
        <td>zy</td>
    </tr>
    <tr>
        <td>c</td>
        <td>zx</td>
    </tr>
    <tr>
        <td>d</td>
        <td>zw</td>
    </tr>
    <tr>
        <td>e</td>
        <td>zv</td>
    </tr>
    <tr>
        <td>f</td>
        <td>zu</td>
    </tr>
    <tr>
        <td>g</td>
        <td>zt</td>
    </tr>
    <tr>
        <td>h</td>
        <td>zs</td>
    </tr>
    <tr>
        <td>i</td>
        <td>zr</td>
    </tr>
    <tr>
        <td>j</td>
        <td>zq</td>
    </tr>
</table>