Ich versuche ein Skript zu erstellen, das zwei Dinge tut. 1) Die Zahlen sollten nicht wiederholt werden. 2) Die Zahlen sollten von einem Array namens $ ID stammen.PHP sollte nicht wiederholen und sollte von einem Array sein
<?php
$a = array(); // final array which will have our id's to display
$id = array(1, 3, 5, 7, 9); //final array should contain a number only from this list
$itemstoshow = 3; // how many items to display
for($i = 0; $i < $itemstoshow; $i++) {
do {
$a[$i] = assignid(9);
$chkid = checkeer($a[$i], $i);
$chkdata = chkdata($a[$i], $i);
} while($chkdata == "nonexist" or $chkid == "repeatedid");
}
// display numbers in the array
for($i = 0; $i < $itemstoshow; $i++) {
echo "Item " . $a[$i] . "--------";
}
// check for redundancy function
function checkeer($x, $y)
{ //first parameter is query aray second is counter
global $a;
$err = 0;
// check if repeating number
for($i = 0; $i <= $y - 1; $i++) {
if($x == $a[$i]) {
$err = 1;
}
}
if($err == 1) {
return "repeatedid";
}
}
//check if array $a holds value from $id or not
function chkdata($x, $y)
{
global $a;
global $id;
for($i = 0; $i <= $y - 1; $i++) {
if($x !== $id[$i]) {
return "nonexist";
}
}
}
//assign id function
function assignid($x)
{
return rand(1, $x);
}
Problem Nummer 1 gelöst Problem Nummer 2 immer noch nicht gelöst bitte helfen Sie mir. sollte der Code 3 Zahlen von 1 bis 9 zeigen die wiederholen DONot und sind im Array $ id
Vielleicht möchten Sie schauen in die [in_array Funktion] (http://php.net/manual /de/function.in-array.php). – aynber
Ich möchte es in prozeduraler Weise getan werden. Wenn ich die chkdata-Funktion nicht verwende, funktioniert es gut, aber es stellt nur sicher, dass sich Zahlen nicht wiederholen. aber irgendwo gibt es einen Fehler mit der Funktion chkdata. Jemand muss mir sagen wo. –
Ein Hinweis (das wäre, was wir tun würden, um das Problem zu finden) ist zu [Rubber Duck Debug] (https://rubberduckdebugging.com/) Ihr Code – FirstOne