如何从静态数组制作动态数组 [英] How to make dynamic array from static array

查看:91
本文介绍了如何从静态数组制作动态数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在使用静态数组时遇到了麻烦,我需要使用动态数组进行更新,有人可以帮助我吗?因为如果我有很多数据,而且必须按1创建1,将非常困难。

I have trouble with my static array, i need to update with dynamic array can someone help me ? because will be so hard if i have alot data and i must create 1 by 1.

$ kriteria = [C1,C2,C3,C4,C5,C6];

$kriteria = [C1,C2,C3,C4,C5,C6];

$ alternatif = [ALT1,ALT2,ALT,ALT4,ALT5,ALT6,ALT7];

$alternatif = [ALT1,ALT2,ALT,ALT4,ALT5,ALT6,ALT7];

$nEntropy = array();
    for ($i=0;$i<count($kriteria);$i++)
        {
            for ($j=0;$j<count($alternatif);$j++)
                {
                    $nEntropy[$i] = (((-1)/log(7)) *( 
                    ($probabilitas[0][0]*log($probabilitas[0][0]))+
                    ($probabilitas[1][0]*log($probabilitas[1][0]))+
                    ($probabilitas[2][0]*log($probabilitas[2][0]))+
                    ($probabilitas[3][0]*log($probabilitas[3][0]))+
                    ($probabilitas[4][0]*log($probabilitas[4][0]))+
                    ($probabilitas[5][0]*log($probabilitas[5][0]))+
                    ($probabilitas[6][0]*log($probabilitas[6][0]))
                ));
            }
        }

$nEntropy1 = array();
    for ($i=0;$i<count($kriteria);$i++)
        {
            for ($j=0;$j<count($alternatif);$j++)
                {
                    $nEntropy1[$i] = (((-1)/log(7)) *( 
                    ($probabilitas[0][1]*log($probabilitas[0][1]))+
                    ($probabilitas[1][1]*log($probabilitas[1][1]))+
                    ($probabilitas[2][1]*log($probabilitas[2][1]))+
                    ($probabilitas[3][1]*log($probabilitas[3][1]))+
                    ($probabilitas[4][1]*log($probabilitas[4][1]))+
                    ($probabilitas[5][1]*log($probabilitas[5][1]))+
                    ($probabilitas[6][1]*log($probabilitas[6][1]))
                ));
            }
        }

$nEntropy2 = array();
    for ($i=0;$i<count($kriteria);$i++)
        {
            for ($j=0;$j<count($alternatif);$j++)
                {
                    $nEntropy2[$i] = (((-1)/log(7)) *( 
                    ($probabilitas[0][2]*log($probabilitas[0][2]))+
                    ($probabilitas[1][2]*log($probabilitas[1][2]))+
                    ($probabilitas[2][2]*log($probabilitas[2][2]))+
                    ($probabilitas[3][2]*log($probabilitas[3][2]))+
                    ($probabilitas[4][2]*log($probabilitas[4][2]))+
                    ($probabilitas[5][2]*log($probabilitas[5][2]))+
                    ($probabilitas[6][2]*log($probabilitas[6][2]))
                ));
            }
        }

$nEntropy3 = array();
    for ($i=0;$i<count($kriteria);$i++)
        {
            for ($j=0;$j<count($alternatif);$j++)
                {
                    $nEntropy3[$i] = (((-1)/log(7)) *( 
                    ($probabilitas[0][3]*log($probabilitas[0][3]))+
                    ($probabilitas[1][3]*log($probabilitas[1][3]))+
                    ($probabilitas[2][3]*log($probabilitas[2][3]))+
                    ($probabilitas[3][3]*log($probabilitas[3][3]))+
                    ($probabilitas[4][3]*log($probabilitas[4][3]))+
                    ($probabilitas[5][3]*log($probabilitas[5][3]))+
                    ($probabilitas[6][3]*log($probabilitas[6][3]))
                ));
            }
        }

$nEntropyy4 = array();
    for ($i=0;$i<count($kriteria);$i++)
        {
            for ($j=0;$j<count($alternatif);$j++)
                {
                    $nEntropy4[$i] = (((-1)/log(7)) *( 
                    ($probabilitas[0][4]*log($probabilitas[0][4]))+
                    ($probabilitas[1][4]*log($probabilitas[1][4]))+
                    ($probabilitas[2][4]*log($probabilitas[2][4]))+
                    ($probabilitas[3][4]*log($probabilitas[3][4]))+
                    ($probabilitas[4][4]*log($probabilitas[4][4]))+
                    ($probabilitas[5][4]*log($probabilitas[5][4]))+
                    ($probabilitas[6][4]*log($probabilitas[6][4]))
                ));
            }
        }

$nEntropy5 = array();
    for ($i=0;$i<count($kriteria);$i++)
        {
            for ($j=0;$j<count($alternatif);$j++)
                {
                    $nEntropy5[$i] = (((-1)/log(7)) *( 
                    ($probabilitas[0][5]*log($probabilitas[0][5]))+
                    ($probabilitas[1][5]*log($probabilitas[1][5]))+
                    ($probabilitas[2][5]*log($probabilitas[2][5]))+
                    ($probabilitas[3][5]*log($probabilitas[3][5]))+
                    ($probabilitas[4][5]*log($probabilitas[4][5]))+
                    ($probabilitas[5][5]*log($probabilitas[5][5]))+
                    ($probabilitas[6][5]*log($probabilitas[6][5]))
                ));
            }
        }

showb($nEntropy);
showb($nEntropy1);
showb($nEntropy2);
showb($nEntropy3);
showb($nEntropy4);
showb($nEntropy5);

我的结果的这张图片

,如您所见,我的代码确实是静态的,并且如果我有很多数据
则很难,而且我也需要像这样的结果

this image for my results as you can see my code really static and so hard if i have alot data and also i need my results likes this

编辑
VörösAmadea的答案是正确的,但仍然缺少一些答案,关于结果的第二个问题仍然是大量。有没有办法只显示一次?
,就像您之前在我的图像上看到的那样,我需要删除重复的数据,因此每个显示的人只有1个,并将其存储到数组中。

EDIT the answers from Vörös Amadea are correct, but there are still some that are lacking, my second question regarding the results is still in large numbers. is there a way to display it only once? as u can see on my image before, i need to remove duplicate data so only 1 for each is who will displayed and store it into array.

我已经修改了VörösAmadea的一些代码,因为如果不进行修改,我出现错误未定义的变量:概率

I have modified a little code from Vörös Amadea because if I don't modify it, I get an error "Undefined variable: probability"

这是我修改过的代码。

for($x=0;$x<1;$x++){
$nth = $x;
$entz = array();
for ($i=0;$i<count($kriteria);$i++)
    {
        for ($j=0;$j<count($alternatif);$j++)
            {
                ${"entz$nth"}[$i] = (((-1)/log(7)) *( 
                ($probabilitas[0][$nth]*log($probabilitas[0][$nth]))+
                ($probabilitas[1][$nth]*log($probabilitas[1][$nth]))+
                ($probabilitas[2][$nth]*log($probabilitas[2][$nth]))+
                ($probabilitas[3][$nth]*log($probabilitas[3][$nth]))+
                ($probabilitas[4][$nth]*log($probabilitas[4][$nth]))+
                ($probabilitas[5][$nth]*log($probabilitas[5][$nth]))+
                ($probabilitas[6][$nth]*log($probabilitas[6][$nth]))
                ));
            }
        }
    }
showb(${"entz$nth"});


推荐答案

您可以在这样的for循环中生成变量名。

只需更改 $ how_many_i_want 的值。

You can generate variable names in for loops like this.
Just change the value of $how_many_i_want.

$how_many_i_want = 3;

for($x=0;$x<$how_many_i_want;$x++){
    generate_entropy($x);
}

function generate_entropy($nth){
    $kriteria = ['C1','C2','C3','C4','C5','C6'];
    $alternatif = ['ALT1','ALT2','ALT','ALT4','ALT5','ALT6','ALT7'];

    ${"nEntropy$nth"} = array();
    for ($i=0;$i<count($kriteria);$i++){
        for ($j=0;$j<count($alternatif);$j++){
            ${"nEntropy$nth"}[$i] = (((-1)/log(7)) *(
                    ($probabilitas[0][$nth]*log($probabilitas[0][$nth]))+
                    ($probabilitas[1][$nth]*log($probabilitas[1][$nth]))+
                    ($probabilitas[2][$nth]*log($probabilitas[2][$nth]))+
                    ($probabilitas[3][$nth]*log($probabilitas[3][$nth]))+
                    ($probabilitas[4][$nth]*log($probabilitas[4][$nth]))+
                    ($probabilitas[5][$nth]*log($probabilitas[5][$nth]))+
                    ($probabilitas[6][$nth]*log($probabilitas[6][$nth]))
                ));
        }
    }
    showb(${"nEntropy$nth"});
}

这篇关于如何从静态数组制作动态数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆