Php 如何从数组的特定对象获取id?
我需要从141部电影的阵列中显示,这是10部最古老的电影。在我这样做之后,我需要让他们中的每一个人都有一个链接,链接到他们的页面,其中包含电影的描述。 所以,我用这个来拍摄最古老的电影:Php 如何从数组的特定对象获取id?,php,Php,我需要从141部电影的阵列中显示,这是10部最古老的电影。在我这样做之后,我需要让他们中的每一个人都有一个链接,链接到他们的页面,其中包含电影的描述。 所以,我用这个来拍摄最古老的电影: $movies = json_decode(file_get_contents('https://raw.githubusercontent.com/yegor-sytnyk/movies-list/master/db.json'))->movies; $numbers = array_column($
$movies = json_decode(file_get_contents('https://raw.githubusercontent.com/yegor-sytnyk/movies-list/master/db.json'))->movies;
$numbers = array_column($movies, 'year','title');
$numbers2=asort($numbers, SORT_NUMERIC);
$numbers3=array_slice($numbers, 0, 10);
为了建立链接,我使用了以下方法:
<?php foreach($numbers3 as $key=>$value){?>
<a href="single.php?movie_id"><?php echo "$key-$value",'<br>';?></a>
<?php }?>
以及single.php页面:
$movieId=$_GET['movie_id'];
if(isset($movieId)&& $movieId && $movieId !=""){
function get_movie($value){
global $movieId;
if($movieId==$value->id){
return TRUE;
}else{
return FALSE;
}
}
$moviesFilter=array_filter($movies, "get_movie", ARRAY_FILTER_USE_BOTH);
if(count($moviesFilter)>0){
$movie= reset($moviesFilter);
}?>
<?php}?>
$movieId=$\u GET['movie\u id'];
如果(isset($movieId)&&$movieId&&$movieId!=“”){
函数get_movie($value){
全球$movieId;
如果($movieId==$value->id){
返回TRUE;
}否则{
返回FALSE;
}
}
$moviesFilter=array\u filter($movies,“获取电影”,array\u filter\u使用两者);
如果(计数($moviesFilter)>0){
$movie=重置($moviesFilter);
}?>
在我按下10部特定电影后,我无法从中找到显示内容的id…:(此处缺少等号(=):
…在single.php脚本顶部,查看单击链接时收到的值。我宁愿使用电影的真实ID作为参数:
<?php
$data = json_decode(file_get_contents('https://raw.githubusercontent.com/yegor-sytnyk/movies-list/master/db.json'), true);
$movies = array_key_exists('movies', $data) ? $data['movies'] : [];
$filtered_movies = $movies;
uasort( $filtered_movies, function ($a, $b) {
return $a['year'] - $b['year'];
});
$filtered_movies = array_slice($filtered_movies, 0, 10);
foreach ($filtered_movies as $id => $movie) {
?>
<a href="single.php?movie_id=<?= $id ?>"><?= $movie['year']." - ".$movie['title'] ?></a>
<?php
}
@B001ᛦ 你可以通过进入hmm看到它,现在当我按下链接时,页面出现了,但是没有电影的内容。仍然错误,应该是我收到了这个:数组([movie_id]=>)检查生成的html(页面)源。href必须类似于“single.php?movie_id=45”。顺便说一句,使用“根相对路径”很好,所以路径应该是“/single.php…”(以斜杠符号开始)所以链接可以在任何页面上运行。通常,你知道你的链接必须是什么样子,所以调整它,直到你的页面源代码中有有效的html。我不能回显$movieYes,因为它是一个包含所有字段的数组。这就是为什么我将它设置为年度和标题的输出:
<a href="single.php?movie_id=<?php echo $movie_id?>" ><?php echo $key-$value; ?></a><br/>
print_r($_GET);
<?php
$data = json_decode(file_get_contents('https://raw.githubusercontent.com/yegor-sytnyk/movies-list/master/db.json'), true);
$movies = array_key_exists('movies', $data) ? $data['movies'] : [];
$filtered_movies = $movies;
uasort( $filtered_movies, function ($a, $b) {
return $a['year'] - $b['year'];
});
$filtered_movies = array_slice($filtered_movies, 0, 10);
foreach ($filtered_movies as $id => $movie) {
?>
<a href="single.php?movie_id=<?= $id ?>"><?= $movie['year']." - ".$movie['title'] ?></a>
<?php
}
$movieId = $_GET['movie_id'];
$data = json_decode(file_get_contents('https://raw.githubusercontent.com/yegor-sytnyk/movies-list/master/db.json'), true);
$movies = array_key_exists('movies', $data) ? $data['movies'] : [];
if (array_key_exists($movieId, $movies)) {
?>
Movie details:<br>
Title: <?= $movies[$movieId]['title'] ?><br>
Year: <?= $movies[$movieId]['year'] ?><br>
Genres: <?= join(', ', $movies[$movieId]['genres']) ?><br>
<?php
} else {
?>
The desired movie does not exist.
<?php
}