0

やあみんな、データベースから文字列の偶数のインデックスを取得し、それらを変数に保存してからエコーしようとしています。しかし、私のコードは機能しないようです。助けてください。ここにあります

require_once('DBconnect.php');
$school_id = '1';
$section_id = '39';
$select_pk = "SELECT * FROM section 
    WHERE school_id = '$school_id' 
    AND section_id = '$section_id'";
$query = mysql_query($select_pk) or die (mysql_error());
while ($row = mysql_fetch_assoc($query)) {
    $public_key = $row['public_key'];
}

if ($public_key) {
    $leng_public_key = strlen($public_key);
    $priv_key_extract = "";
    $array_pki = array();
    for ($i=0; $i <=$leng_public_key-1 ; $i++) { 
        array_push($array_pki,$public_key[$i]);
    }

    foreach ($array_pki as $key  => $value) {
        if($key % 2 == 0) {
            $priv_key_extract += $public_key[$key];
        } else {
            $priv_key_extract ="haiiizzz";
        }
    }
}
echo $priv_key_extract;

ご覧のとおり、imはモジュロ2を使用して、インデックスが偶数かどうかを確認しようとしています。

4

2 に答える 2

1

私はあなたのコードを以下のように更新しました、それは今動作します:

<?php
$public_key = 'A0L8V1I5N9';
if ($public_key) {
    $leng_public_key = strlen($public_key);
    $priv_key_extract = "";
    $array_pki = array();
    for ($i=0; $i <=$leng_public_key-1 ; $i++) {
        array_push($array_pki,$public_key[$i]);
    }
    foreach ($array_pki as $key  => $value) {
        //Changed condition below $key % 2 ==0 => replaced with $key % 2 == 1
        if($key % 2 == 1) {
            // Changed concatenation operator , += replaced with .=
            $priv_key_extract .= $public_key[$key];
        } /*else {
            //Commented this as it is getting overwritten
            $priv_key_extract ="haiiizzz";
        }*/
    }
}
echo $priv_key_extract;
?>
于 2013-02-19T04:31:22.450 に答える
0

この機能を試してください

function extractKey($key) {
    if (empty($key) || !is_string($key)) return '';

    $pkey = '';
    for ($i=0;$i<strlen($key);$i++) {
        if ($i % 2 == 0) {
            $pkey .= $key[$i];
        }
    }
    return $pkey;
}
echo extractKey('12345678'); # => 1357
于 2013-02-19T04:42:45.130 に答える