PHP数组提取

PHP数组提取,php,arrays,loops,extract,Php,Arrays,Loops,Extract,我有一个PHP数组$decoded。以下是阵列的主要功能: Array ( [0] => Ú [1] => Ý [2] => æ [3] => â ) 如何提取数组并将其赋给变量? 我试过使用extract()函数,它可以工作。但我的问题是:数组的索引数是动态的 有人想帮忙吗? 更新 以下是我的php试用版: <?php $str = "admin"; echo $str."<br>"; $jc = strlen($str)

我有一个PHP数组
$decoded
。以下是阵列的主要功能:

Array ( 
  [0] => Ú 
  [1] => Ý 
  [2] => æ 
  [3] => â 
)
如何
提取数组并将其赋给变量?
我试过使用
extract()
函数,它可以工作。但我的问题是:数组的索引数是动态的
有人想帮忙吗?
更新

以下是我的php试用版:

<?php
$str = "admin";
echo $str."<br>";
$jc = strlen($str)-1;
for ($i=0;$i<=$jc;$i++){
echo $chr = substr($str,$i,1);
$an = ord($chr);
$asli = ord($chr);
if ($an >=65 and $an <= 90){
$an = $an+127;
}
if ($an >=97 and $an <= 122){
$an = $an+121;
}
if ($an >=48 and $an <= 57){
$an = $an+196;
}
if ($an == 32){
$an = 32;
}
   $decoded[$i] = chr($an);
   echo "  =>$asli => $an => ".$decoded[$i]."<br>";
}

?>
我想将解码后的字符(Ú,Ý,æ,–ç)关联到一个变量中。

所以,我的目标是将字符串
admin
解码为
。如上所述,变量
$str
是动态的

像这样尝试,它将创建您的变量数组:

$array = Array ( 
  [0] => Ú 
  [1] => Ý 
  [2] => æ 
  [3] => â 
);
extract($array, EXTR_PREFIX_ALL, 'var');
$defined_vars = get_defined_vars(); 
print_r($defined_vars);

我知道这不完全是您想要的,但可以从中获得一些想法。

您可以将字符串连接起来:

<?php

$str = "admin";

echo $str."<br>";

$length = strlen($str);

$newstr = "";

for ($i = 0; $i < $length; $i++) {
    echo $chr = $str[$i];

    $an = ord($chr);

    if ($an >=65 and $an <= 90) {
        $an = $an+127;
    }

    if ($an >=97 and $an <= 122) {
        $an = $an+121;
    }

    if ($an >=48 and $an <= 57) {
        $an = $an+196;
    }
    if ($an == 32) {
        $an = 32;
    }

    $newstr .= chr($an);
}

echo $newstr;

我只是添加了一些东西。转换非常用字符时会遇到一些问题。
我已经试过你的剧本了。您的字符将被一个非标准字符加倍或稀疏,ASCII数字(64)将被减去64,因此您必须将其相加64才能得到您的字符。
以下是解决方案:

        $pwd = "AzsOke";
        $jc = strlen($pwd)-1;
        for ($i=0;$i<=$jc;$i++){
            if ( $i%2 == 1){
                $chr = substr($pwd,$i,1);
                $an = ord($chr);
                $asli = ord($chr);
                if ($an >=193 and $an <= 217){
                    $an = $an-127;
                }
                if ($an >=218 and $an <= 243){
                    $an = $an-121;
                }
                if ($an >=244 and $an <= 253){
                    $an = $an-196;
                }
                if ($an == 32){
                    $an = 32;
                }
                $codenumber_pwd .= $an+64;                       
            }
        }
$pwd=“AzsOke”;
$jc=strlen($pwd)-1;

对于($i=0;$i=193和$an=218和$an=244和$an)你能展示你到现在为止已经编写的代码吗?我不清楚你到底想做什么。这个数组是PHP变量还是纯文本?首先:为什么?!你试图通过提取数组来解决什么问题,如果你的问题是显而易见的,你希望得到什么结果很明显,你无法预测结果?@RoyalBg可能是他在寻找的,但元素的数量是动态的,因此extract()更适合他的需要。你已经将其放入变量$decoded中了,不是吗?这样你就可以在for循环后执行$myNewString=introde(NULL,$decoded)或者将新字符包含到字符串变量中,而不是创建一个数组,然后将其内爆。感谢您的回答,但我认为kelunik的回答更容易做到,而且有效。:DBut我在
$newstr.=chr($an)中遇到了字符“.”的问题
.json会将其视为一个错误,因此json说:意外字符。如果您希望它是json,则必须对其进行编码
echo json\u encode($newstr)那不是我的意思。我想我应该和你讨论一下。我在那里等你。啊,谢谢你,这是我后来发现的问题。但是我有另一个解决办法,强迫它。
        $pwd = "AzsOke";
        $jc = strlen($pwd)-1;
        for ($i=0;$i<=$jc;$i++){
            if ( $i%2 == 1){
                $chr = substr($pwd,$i,1);
                $an = ord($chr);
                $asli = ord($chr);
                if ($an >=193 and $an <= 217){
                    $an = $an-127;
                }
                if ($an >=218 and $an <= 243){
                    $an = $an-121;
                }
                if ($an >=244 and $an <= 253){
                    $an = $an-196;
                }
                if ($an == 32){
                    $an = 32;
                }
                $codenumber_pwd .= $an+64;                       
            }
        }